2017-08-25 3 views
-1

Ich versuche, Neigungen in einem 2D-Spiel mit dieser Formel y1 = y + (x1 - x) * (v/u) für Steigungen mit zufälligen Grad zu implementieren. Ich brauche eine Formel für die andere Richtung (von rechts nach links nach unten). Diese Formel y1 = y + (v - (x1 - x)) funktioniert nicht. Kennt jemand die richtige Formel?XNA Slope Math Formel

Hier ist ein Bild, das helfen kann:

enter image description here

+0

Die erste Formel erlaubt nur Steigungen bei 45 Grad Verwenden Sie 'y1 = y + tan (Winkel) * (x1 - x)' – meowgoesthedog

+0

y1 = Steigung * (x1 - x) + y, wobei Steigung = v/u. –

+0

Sorry vergessen, * (v/u) hinzuzufügen, es war nur ein Fehler beim Tippen. Das Problem ist nicht von links nach rechts aufwärts, das funktioniert gut, ich suche ein fomular für die andere Richtung – Xhen

Antwort

1

Es ist unklar, was in Ihrer Frage ist bekannt und unbekannt. Dein Bild hilft nicht. Ich werde versuchen zu erraten.

Die Antwort ist wenig mehr als High School Algebra und Trigonometrie.

Ich nehme an, Sie haben einen Startpunkt (x1, y1), ein Winkel Theta Ihrer Wahl, die in positiver x-Richtung gleich Null ist und gegen den Uhrzeigersinn zunimmt, und eine Entfernung r, die Sie ' Ich mag es zu reisen.

Sie können den Endpunkt (x2, y2) wie folgt berechnen:

x2 = x1 + r*cos(theta) 
y2 = y1 + r*sin(theta) 

Diese für alle Winkel funktioniert. Zum Beispiel Ihrer „nach oben und nach rechts“ für einen Winkel von 45 Grad (pi/4 rad) ist:

x2 = x1 + r*sqrt(2)/2 
y2 = y1 + r*sqrt(2)/2 

Ihre „nach unten und nach rechts für einen 225-Grad-Winkel ist:

x2 = x1 - r*sqrt(2)/2 
y2 = y1 - r*sqrt(2)/2