3 Pluspunkte 0 Minuspunkte

Ich habe eine Colission Direction in einem 2D Vector

PointF colDir = new PointF(selectedNode.Origin.X - oldPosition.X, selectedNode.Origin.Y - oldPosition.Y);

Wenn ein Objekt aus dieser Einfallsrichtung auf ein Objekt prallt wie berechne ich den Ausgangswinkel den es beim abprallen haben muss?

von  

1 Antwort

2 Pluspunkte 0 Minuspunkte

Wenn du den Einfallswinkel hast kannst du den Normalenvektor mit einfacher Trigonometrie berechnen.

// Winkel im Bogenmaß
double angleOfIncidence = Math.Atan2(colDir.Y, colDir.X);

// Normalenvektor berechnen
double normalX = Math.Cos(angleOfIncidence + Math.PI / 2);
double normalY = Math.Sin(angleOfIncidence + Math.PI / 2);

// Normalenvektor als PointF erstellen
PointF p = new PointF((float)normalX, (float)normalY);

von (706 Punkte)