Für mich als studierter Mathematiker ist diese Formulierung unerträglich. Geraden sind per Definition unendlich lang.
Gemäß der Windows apo Funktion arc() habe ich diese Funktion gebaut:
arc(x1,y1,x2,y2, sx,sy, ex,ey);
wie kann ich nun sicher stellen dass
die vom Bogenradius-Mittelpunkt führenden Geraden genau am Bogenende aufhören?
Ich will eine eigene Ellipsenfunktion verwenden, wie in meinem Thread zum Thema "Ellipsenalgo aus Formelsammlung kreieren"
https://www.delphipraxis.net/217478-...-kreieren.html
Möchte also diese Ellipse wieder verwnden, den Bogen zeichnen und die vom Bogenende zum Mittelpunkt führenden Begrenzungslinien. Gibt es dazu eine einfache Formel:
- um das Bogenende zu finden, könnte mit a * cos(alpha) := X; b* sin(alpha) := Y gehen?
- aus den sx,sy, ex,ey Koordinaten auf Start und Endwinkel zu kommen?
1. Du bildest den Mittelpunkt deines Rechtecks. Wir definieren mx=x1+rx, my=y1+ry mit rx=(x2-x1)/2 und ry=(y2-y1)/2.
2. Du bestimmst den Winkel des übergebenen Start- bzw. Endpunktes relativ zum besagten Mittelpunkt jeweils mit den allseits bekannten Formeln. Es liegt SWS mit W=Pi/2 vor, Arkustangens regelt also.
3. Wenn man die Google-KI fragt, wie man einen Punkt auf einer Ellipse in bestimmtem Winkel zum Mittelpunkt berechnet, spuckt sie totalen Blödsinn aus (die Berechnung des im folgenden Link
grünen Punktes P zum irrelevanten und unbekannten Winkel Alfa, bei Google Winkel Thita genannt). Es wird zum Glück
hier erklärt: Der gerade bestimmte Winkel heißt dort Winkel Fi und suchst die Koordinaten Xi und Ita (die du zum Mittelpunkt der Ellipse/des Rechtecks addieren musst) des Punktes P. Für SWW (W1=Fi und W2=Pi/2) und somit die Anwendbarkeit der Standardformeln für Sinus und Kosinus fehlt dir die Länge der Seite p. Die wird berechnet mit:
p = sqrt(ry² / (1 - (sqrt(rx²-ry²) / rx)² * (cos(Fi))² )))
OT: Wer auch immer sich überlegt hat, den Exponenten vor die Klammer zu schreiben, wenn man das Ergebnis einer trigonometrischen Funktion potenziert: Ich hasse dich! Du bist eine Schande für die Mathematik! Es ist beim obigen Link so geschrieben und ich habe es in der Zeile hierüber korrigiert.
4. Jetzt befindet sich dein Punkt bei
X = mx+Xi = mx+p*cos(Fi)
Y = my+Ita = my+p*sin(Fi))