G
_matze schrieb:
Gregor@Uni schrieb:
Welcher Winkel ist das bei Dir? Ist das der Winkel zwischen x-Achse und kürzester Verbindung zwischen Gerade und Ursprung?
Ja, Volltreffer. Ich habe auch vorhin eine Lösung von einem Kollegen bekommen, die zu funktionieren scheint. Wenn es dir nichts ausmacht, würde ich die gerne mal mit deiner vergleichen.
Ich habe da momentan keine Lösung. Habe soetwas mal vor 5 Jahren oder so programmiert, aber den Code werde ich vermutlich nicht mehr auftreiben.
Du könntest wie folgt vorgehen, um die Gerade zu rekonstruieren:
1. Du berechnest Dir mit Abstand r und Winkel alpha den Punkt, an dem die Gerade dem Ursprung am nächsten ist. Nennen wir diesen Punkt mal (x1,y1). Dann gilt wohl x1 = cos(alpha)*r und y1=sin(alpha)*r.
2. Die Gerade steht natürlich senkrecht auf der Verbindung zwischen Ursprung und nächstem Punkt. Damit hast Du genug Informationen, um die Beschreibung der Geraden auf folgende Form zu bringen: g(t) = (x1,y1) + t*(x2,y2).
Wie gesagt ist der Winkel zwischen (x1,y1) und (x2,y2) 90°. Das Skalarprodukt zwischen diesen beiden Vektoren verschwindet also: x1*x2+y1*y2=0. Eine Möglichkeit für (x2,y2) ist somit offensichtlich x2=y1, y2=-x1.
3. Jetzt kannst Du Werte für t einsetzen, um an Punkte auf der Geraden zu kommen.
Kann sein, dass ich da oben irgendwo Mist geschrieben habe, also überdenk das am Besten nochmal, bevor Du es blind einsetzt.