Welche Funktion/Bedeutung haben die aufgeführten Datenfelder?
Code: Alles auswählen
PEllipseInfoData = ^TEllipseInfoData;
TEllipseInfoData = record
x, ytopmax, ytopmin, ybotmax, ybotmin : integer;
OnlyTop : boolean;
end;
TEllipseInfo = class
private
fcx, fcy, frx,fry,
fa1, fa2, frot : real;
fx1,fy1, fx2,fy2 : integer;
InfoList : TList;
procedure FreeList;
procedure ClearList;
function FindXIndex (x:integer) : integer;
procedure PrepareCalculation (var np:integer; var delta:real);
function NewInfoRec (anX:integer) : PEllipseInfoData;
procedure CalculateCircular (const b:TRect; var x,y,rx,ry:real);
public
constructor create;
destructor destroy; override;
function GetInfoForX (x:integer; var ytopmax,ytopmin,ybotmax,ybotmin:integer):boolean;
function GetInfoForX (x:integer; var Info:PEllipseInfoData):boolean;
procedure GatherEllipseInfo (const bounds:TRect);
procedure GatherArcInfo (const bounds:TRect; alpha1,alpha2:real);
property cx : real read fcx; // center point
property cy : real read fcy;
property rhor : real read frx; // radius
property rver : real read fry;
{ only usable when created with GatherArcInfo }
property a1 : real read fa1; // angle 1 and point on ellipse
property x1 : integer read fx1;
property y1 : integer read fy1;
property a2 : real read fa2; // angle 2 and point on ellipse
property x2 : integer read fx2;
property y2 : integer read fy2;
end;
Die Prozeduren und Funktonen erlauben keine Viertel oder halben Ellipsen.
Wie könnte ich diese Funktionalität hinzufügen? Unter Anwendung der EllipseInfo Daten.