Einzelnen Beitrag anzeigen

cltom

Registriert seit: 22. Sep 2005
221 Beiträge
 
Delphi 12 Athens
 
#1

Kreisbogen direkt zeichnen (ohne canvas.arc)

  Alt 19. Mär 2008, 12:30
Hallo DP,

folgende Sache: ich möchte genau das, was die Funktion canvas.arc kann, manuell nachbauen. Also ein Kreissegment (oder einen Kreisbogen) zeichnen und zwar zwischen zwei Punkten P1 und P2. Warum nicht arc nehmen? Ich brauche die Koordinaten einzelner Kreispunkte explizit, nicht das fertige Ding.

Jetzt kann ich mit der Kreisgleichung anfangen:

(x-xm)² + (y-ym)² = r²

Die Frage aber dann: wie kann ich den relevanten Teil des Kreises herausnehmen? Den ganzen Kreis durchgehen und prüfen ... ja, aber was? Ich sehe hier keine sinnvolle Prüfung.

Alternative Kreisgleichung:

x = xm + r * cos phi
y = ym + r * sin phi

mit phi = 0 .. 2pi

Die Idee hier: ich rechne mir von P1 und P2 jeweils phi aus und prüfe, ob phi im gegebenen Bereich liegt. Im Grunde rolle ich also den Kreis auf eine Strecke von 0 bis 2 pi ab und lasse nur jene werte durch, die zwischen P1 und P2 liegen.

Das Problem dabei: nach der Umkehrung des Cos mit dem ArcCos kann ich ja nicht mehr sagen, ob der ursprüngliche Wert zB: pi/2 oder 3pi/2 war. Eine einfache Prüfung geht also so auch nicht.

So, und hier stecke ich einmal. Aber dieses Problem hat doch bestimmt schon irgendwer einmal gelöst. Nicht zuletzt die Leute von Borland (oder vermutlich Microsoft), die den arc geschrieben haben.

kann mir jemand weiterhelfen?

danke!

gruß
tom
  Mit Zitat antworten Zitat