So ich versuchen einen Pie zu zeichnen mit der graphics32 Lib.
genauer gesagt möchte ich die Vector variante davon benutzen. die in der
GR32_VectorUtils.pass zu finden ist
mit der standard "Canvas.Pie" funktioniert das einwandfrei, die ist mir aber zu zackig.
mit der Vector variante komme ich einfach nicht klar.
ich möchte den Start-Angle eingeben und mit der maus die position setzen
Delphi-Quellcode:
function GetAnglePosition(R : TRect; FBaseAngle, FMin, FMax, FPosition : Integer): TPoint;
var
a: Double;
begin
a:=(FBaseAngle - 90) + 360 * (FPosition /(FMax - FMin) - FMin);
a:= pi * a / 180;
with R do
begin
Result.X:= Round(Cos(a) * (Right - Left) / 2 + (Left + Right) / 2);
Result.Y:= Round(Sin(a) * (Bottom - Top) / 2 + (Bottom + Top) / 2);
end;
end;
var
R: TRect;
P1, P2: TPoint;
P1:= GetAnglePosition(R, 0, 0, 360, 180);
P2:= GetAnglePosition(R, 0, 0, 360, -180 + Position);
Buffer.Canvas.Pen.Color:= $00606060;
Buffer.Canvas.Brush.Color:= clred;
if Position > 0 then
Buffer.Canvas.Pie(R.Left + 5, R.Top + 5, R.Right-5, R.Bottom-5, P2.X,P2.Y,P1.X,P1.Y);