Einzelnen Beitrag anzeigen

Wishmaster

Registriert seit: 14. Sep 2002
Ort: Steinbach, MB, Canada
301 Beiträge
 
Delphi XE2 Architect
 
#1

Vector Pie mit der graphics32

  Alt 26. Jan 2016, 07:58
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);
Miniaturansicht angehängter Grafiken
snap4.jpg   snap5.jpg   snap6.jpg   snap7.jpg  
  Mit Zitat antworten Zitat