2017-03-11 7 views
0

Mein Problem aus dem Titel nicht klar sein könnte, aber es ist ganz einfach:Erster Anteil von 2 Dreiecken deren Winkel

angleInDegrees = Math.Atan2(vY, vX) * 180/Math.PI; 

I erhöhen muß (Abnahme) Vx und Vy durch doppelten „Wert“, egal was " angleInDegrees "auf diese Weise, wenn der Winkel 90 Grad beträgt, wird vX um 100% von" Wert "und vY um 0% erhöht und wenn der Winkel 45 Grad beträgt, werden beide Zahlen um 50% von" Wert "erhöht. Wie kann ich das erreichen?

enter image description here

Antwort

0

Ist das, was Sie suchen?

angleInDegrees = Math.Atan2(vY, vX) * 180/Math.PI; 
vX += value * angleInDegrees/90.0f; 
vY += value * (1 - (angleInDegrees/90.0f)); 
+0

funktioniert gut, solange der Winkel zwischen 0 und 90 liegt, aber ich kann den Rest selbst machen. Es war einfacher als ich dachte: D – Vordex

0

Wörtliche Antwort:

if (angleInDegrees == 90) 
    vX *= 2.0; 

if (angleInDegrees == 45) 
{ 
    vX *= 1.5; 
    vY *= 1.5; 
} 

P. S. Argumente Reihenfolge von Atan2 ist (y, x)

+0

der assign-Operator in der if-Anweisung aktualisiert wurde es ‚gleich‘ Operator –

+0

nicht zu machen, i ment über etwas anderes zu fragen. Ich werde meine Frage bearbeiten ... – Vordex

+0

@Vordex Problem ist immer noch unklar. Willst du eine lineare Abhängigkeit der Koeffizienten für vx, vy vom Winkel? – MBo