Einzelnen Beitrag anzeigen

Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#6

Re: Canvas.Arc Länge abfragen?

  Alt 17. Aug 2009, 14:40
Okay, also hast du mehrere Punkte, die du durch Linen verbindest, und du möchtest die Ecken abrunden.

Dann hast du für jeden (Zwischen-)Punkt 2 Vektoren, die besagen, in welche Richtung die beiden Linienstücke abgehen.

Also wenn du die Punkte A, B, C, D hast und den Punkt B betrachtest brauchst du erstmal die Vektoren BA und BC.

Jetzt berechnest du 2 Winkel:
phi als der winkel dazwischen: Bei beiden Vektorn den Winkel ausrechnen (atan2) und subtrahieren.
theta als die Richtung des Kreismittelpunkts Beide Vektoren normieren, dann addieren, und math.atan2 benutzen. Falls beim addieren 0 rauskommt, kannste abbrechen (gerade Verbindung)

Damit hast du die Richtung in die du gehen musst. Jetzt brauchst du noch den Radius der Verrundung (z.B. 30px) um den Mittelpunkt des Kreises zu errechnen. Der Abstand zum Punkt B ergibt sich durch Z = R/cos(phi/2) der Kreismittelpunkt dann mit (X = Z*cos(theta) und Y = Z*sin(theta))
Am Ende nicht vergessen, den Punkt B draufzurechnen und du hast die Koordinaten des Kreismittelpunkts.

So ungefähr. Kann sein, dass das eine oder andere Vorzeichen noch falsch ist
  Mit Zitat antworten Zitat