Archiv verlassen und diese Seite im Standarddesign anzeigen : Neue Koordinaten anhand X, Y, Winkel, Distanz
hoschi111
22.01.2016, 12:37
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?
blackberry
22.01.2016, 20:11
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 (https://en.wikipedia.org/wiki/Rotation_matrix) berechnen, entsprechend der gewünschten Schrittweite skalieren und zu deiner alten Position addieren.
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
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.
hoschi111
23.01.2016, 16:20
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.
blackberry
23.01.2016, 19:19
http://s23.postimg.org/8cgelfc7f/image.png
Der Winkel ist hier im Bogenmaß angegeben.
um was für ein koordinatensystem handelt es sich? kartesiches oder iwas in richtung positionsbestimmung aufm planeten erde?
hoschi111
25.01.2016, 14:24
Hab die Lösung schon.
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
Powered by vBulletin® Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.