Registriert seit: 6. Apr 2005
10.109 Beiträge
|
Re: Probleme mit AngleArc
20. Dez 2006, 15:11
Hi,
es sind nur ganz kleine Änderungen notwendig. Ich habe die Variable iDist eingeführt, welche festlegt, wie weit die Viertelkreise vertikal auseinander geschoben werden sollen:
Delphi-Quellcode:
procedure TDemoForm.FormClick(Sender: TObject);
const
iRadius = 60;
var
ptCenter: TPoint;
iDist: Integer;
begin
ptCenter.X := ClientWidth div 2;
ptCenter.Y := ClientHeight div 2;
iDist := 50;
with Canvas do
begin
Pen.Width := 3;
MoveTo(ptCenter.X - iRadius, ptCenter.Y + iDist div 2);
AngleArc( Handle, ptCenter.X, ptCenter.Y + iDist div 2, iRadius, 180, 180);
MoveTo(ptCenter.X - iRadius, ptCenter.Y - iDist div 2);
// alternativ - um die Lücke zu schließen:
// MoveTo(ptCenter.X - iRadius, ptCenter.Y + iDist div 2);
AngleArc( Handle, ptCenter.X - 2 * iRadius, ptCenter.Y - iDist div 2, iRadius, 0, 90);
MoveTo(ptCenter.X + 2 * iRadius, ptCenter.Y - iRadius - iDist div 2);
AngleArc( Handle, ptCenter.X + 2 * iRadius, ptCenter.Y - iDist div 2, iRadius, 90, 90);
// um die Lücke zu schließen:
// LineTo(ptCenter.X + iRadius, ptCenter.Y + iDist div 2)
end;
end;
Wenn du den unteren bzw. oberen Rand deiner "Grube" auf konstantem Niveau halten möchtest, dann zeigt dir ein Vergleich der beiden Quellcodes an welcher Stelle du anpassen musst.
Viel Spaß
|
|
Zitat
|