Neue Koordinaten anhand X, Y, Winkel, Distanz
Ahoi,
ich suche eine Formel,
die mir eine neue Position im Koordinatensystem sucht.
Gegeben sind:
X, Y, Z; Z kann vernachlässigt werden, da gleichgesetzt wird.
Ausrichtungswinkel, der zur nächsten Koordinate zeigt.
Entfernung zur zu suchenden neuen Position.
Der Winkel wird mit +-180 Grad angegeben.
Kann mir da jemand behilflich sein?
AW: Neue Koordinaten anhand X, Y, Winkel, Distanz
Du solltest zumindest zwei Winkel und eine Länge haben, weil du dich sonst immer nur in einer Ebenen bewegst. Außerdem sollte man wissen was deine Winkel messen -- Winkel zur X-Achse in der XY-Ebene, beispielsweise.
Sobald du dich da festgelegt hast, kannst du deinen Richtungsvektor mit Rotationsmatrizen berechnen, entsprechend der gewünschten Schrittweite skalieren und zu deiner alten Position addieren.
AW: Neue Koordinaten anhand X, Y, Winkel, Distanz
Die Tatsache mit -+180 und Z vernachlässigen, lässt mich auf einen Aimbot o.ä. für ein Source-Engine Game schließen :P
Wenn ich damit richtig liege kannst mir mal ne PM schicken. Die Formel aus meinem Source zu extrahieren is etwas kompliziert, da ein paar Sonderfälle auftauchen
AW: Neue Koordinaten anhand X, Y, Winkel, Distanz
Hätte auch spontan beim lesen auf Aimbot getippt^^ Die Entfernung etc. sollte man aber mit ein paar Checks relativ hinbekommen denke ich.. vorallem wenn man die Z Achse weglässt.
AW: Neue Koordinaten anhand X, Y, Winkel, Distanz
Hey, ich danke euch für die Antworten.
Es handelt sich in der Tat um ein Spiel. Allerdings nicht um einen Aimbot, sondern präzises Teleporten.
AW: Neue Koordinaten anhand X, Y, Winkel, Distanz
http://s23.postimg.org/8cgelfc7f/image.png
Der Winkel ist hier im Bogenmaß angegeben.
AW: Neue Koordinaten anhand X, Y, Winkel, Distanz
um was für ein koordinatensystem handelt es sich? kartesiches oder iwas in richtung positionsbestimmung aufm planeten erde?
AW: Neue Koordinaten anhand X, Y, Winkel, Distanz
Hab die Lösung schon.
Code:
Private Function Rotate(ByVal x As Single, ByVal y As Single, ByVal viewangle As Single) As PointF
viewangle = CSng(viewangle * Math.PI / 180.0)
Return New PointF(CSng(x * Math.Cos(viewangle) - y * Math.Sin(viewangle)), CSng(x * Math.Sin(viewangle) + y * Math.Cos(viewangle)))
End Function
Dim x As Single = 50
Dim y As Single = 0
Dim viewangle As Single = 127.5
Dim r As PointF = Rotate(x, y, viewangle)
Dim newX as Single = 160.0 + r.X
Dim newY as Single = 40 + r.Y