Ich sehe zwei Arc Methoden
die erste: Arc(left,top,right,bottom, Angle16Deg,Angle16DegLength: Integer);
die zweite: Arc(left,top,right,bottom,SX,SY,EX,EY: integer);
Welche Bedeutung haben in der zweiten Methode die Parameter SX,EX,SY,EY???
Sollten das in diesem Fall die Schnittpunkte des Bogens mit dessenn Enden sein, wie berechne ich die dann?
Ich habe folgende Ellipsengleichung:
Code: Alles auswählen
procedure PaintEllipse(Canv: TFPCustomCanvas; xm, ym, xR, yR, stangle, endangle: Extended; numSteps: Integer; c: TFPColor);
var
t, tStart, tEnd, tStep: Extended;
i,j: Integer;
x, y: Extended;
MyPutPix: TPutPixelProc;
procedure DrawPixel(Canv: TFPCustomCanvas; x,y: Longword);
begin
//für meine Frage uninteressant
end;
begin
if numSteps < 1 then Exit; // Sicherheitsprüfung
// Winkel in Radiant umrechnen
tStart := DegToRad(stangle);
tEnd := DegToRad(endangle);
// Normierter Parameter t von tStart bis tEnd
tStep := (tEnd - tStart) / numSteps;
with canv.pen do
case mode of
pmMask : MyPutPix := @PutPixelAnd;
pmMerge : MyPutPix := @PutPixelOr;
pmXor : MyPutPix := @PutPixelXor;
else MyPutPix := @PutPixelCopy;
end;
// Zeichne Punkte entlang der Ellipse
for i := 0 to numSteps do
begin
t := tStart + i * tStep;
// Parametrische Darstellung der Ellipse
x := xm + xR * Cos(t); if t=tStart then xs:=x; if t=tEnd then xe:=x; //ist das richtig, dann hätte ich die Positionen von SX,SY,EX,EY
y := ym + yR * Sin(t); if t=tStart then ys:=y; if t=tEnd then ye:=y;
DrawPixel(Canv, Round(x), Round(y)); // Zeichne Pixel
end;
end;