Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: Probleme mit AngleArc

  Alt 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ß
  Mit Zitat antworten Zitat