Wie man Koordinaten eines Punktes in einem Koordinatensystem erhält, wenn alles, was ich habe, die Koordinaten des Ursprungs (x, y) und des Winkels vom Ursprung zu ist der Punkt und die Entfernung vom Ursprung zum Punkt?Wie man Koordinaten eines Punktes in einem Koordinatensystem basierend auf Winkel und Entfernung erhält
Antwort
Sie verwenden Math.cos
, Math.sin
wie folgt aus:
pointX = x + distance * Math.cos(angle)
pointY = y + distance * Math.sin(angle)
Beachten Sie, dass Math.cos
und Math.sin
das Argument annimmt, in Radiant gegeben. Wenn Sie den Winkel in Grad haben, würden Sie zum Beispiel Math.cos(
Math.toRadians(angle)
)
verwenden.
+1: Da es tatsächlich Java-Funktionen verwendet, was meine Antwort nicht tat :) –
+1 für eine vollständige Antwort ... Das ist, was Erfahrung ist !!! – aProgrammer
Wie könnte dies für ein 3D-System geändert werden? – helion3
px = x + r * cos(phi)
py = y + r * sin(phi)
wo [px py]
ist der Punkt, den Sie suchen, [x y]
die „Herkunft“ ist, ist der Abstand r
und phi
ist der Winkel zum Ziel vom Ursprung.
EDIT: http://en.wikipedia.org/wiki/Polar_coordinate_system Dieser Link, der hilfreich von Bart Kiers geschrieben wurde, könnte einige Hintergrundinformationen liefern.
Wenn d der Abstand und A ist der Winkel als der coordnates des Punktes wird
(x + d * Cos (A), y + d * Sin (A))
Dies ist falsch, da nicht berücksichtigt wird, dass der Punkt um einen anderen beliebigen Punkt (x, y) versetzt ist. –
@ kigurai; Danke, dass du es gezeigt hast. Bearbeitete den Code. Es war in meiner Meinung beim Tippen Ich weiß nicht, wie ich es verpasst habe ... Jedenfalls noch einmal vielen Dank ... – aProgrammer
r
Wenn der Abstand vom Ursprung ist und a
ist der Winkel (im Bogenmaß) zwischen dem x-Achse und dem Punkt, kann man einfach die Koordinaten mit einer Umwandlung von Polarkoordinaten berechnen:
x = r*cos(a)
y = r*sin(a)
(dies setzt voraus, dieser Ursprung wird auf (0,0)
gelegt, andernfalls sollten Sie die Verschiebung zum Endergebnis hinzufügen).
Das inverse Ergebnis wird durch Berechnen des Modulo des Vektors (da ein Abstand + Winkel einen Vektor bilden) und des Arkustangens, der unter Verwendung der Funktion atan2
berechnet werden kann, berechnet.
r = sqrt(x*2+y*2)
a = atan2(y,x)
Klingt eher nach einer Mathematik (Algebra spezifisch) Frage, als eine Computer-Frage. Kennen Sie die Formeln, um den neuen Punkt zu berechnen? –
http://mathworld.wolfram.com/PolarCoordinates.html oder http://en.wikipedia.org/wiki/Polar_coordinate_system –
Hängt vom Typ des Koordinatensystems ab, aber die meiste Zeit verwendet die einfachen trigonometrischen Funktionen, die sin genannt werden(), cos(). – hovanessyan