lima-city: Webhosting, Domains und Cloud
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 (629 Punkte)  
Diese Community basiert auf dem Prinzip der Selbstregulierung. Beiträge werden von Nutzern erstellt, bewertet und verbessert – ganz ohne zentrale Moderation.

Wer hilfreiche Fragen stellt oder gute Antworten gibt, sammelt Punkte. Mit steigender Punktzahl erhalten Mitglieder automatisch mehr Rechte, zum Beispiel

  • Kommentare verfassen
  • Fragen und Antworten bewerten
  • Themen von Fragen bearbeiten
  • Fragen, Antworten und Kommentare bearbeiten
  • Inhalte ausblenden

So entsteht eine Plattform, auf der sich Qualität durchsetzt – getragen von einer engagierten Gemeinschaft.

2.3k Fragen

2.8k Antworten

265 Kommentare

14 Nutzer