Hallo alle zusammen,
ich habe folgendes Anliegen:
Ich habe 2 Punkte, die ein Nutzer selber im Raum auswählen kann und ich möchte die senkrechte Ebene, die durch diese Punkte läuft darstellen.
Ich möchte die Ebene durch horizontale Linien darstellen. Um diese Linien richtig zu drehen möchte ich den Winkel bestimmen, um den ich die Linien drehen muss. Doch wie genau mache ich das?
Meine erste Idee war, dass ich die Ebene berechnen und dann den Schnittwinkel mit einer zweiten Ebene bestimme.
Die Ebene habe ich wie folgt berechnet:
|
C#-Quelltext
|
1
2
3
4
5
6
7
8
9
|
Vector3 differenz = new Vector3(p2.X - p1.X, p2.Y - p1.Y, p2.Z - p1.Z);
Vector3 eZ = new Vector3(0,0,1);
Vector3 normal = new Vector3(
(eZ.Y * differenz.Z - eZ.Z * differenz.Y),
(eZ.Z * differenz.X - eZ.X * differenz.Z),
(eZ.X * differenz.Y - eZ.Y * differenz.X)
);
float layer_result = normal.X * v1.X + normal.Y * v1.Y + normal.Z * v1.Z;
|
Habe ich dies gemacht, könnte ich doch sagen, dass der Drehwinkel, der Winkel zwischen der Normalen und diesem Vektor ist oder:
|
C#-Quelltext
|
1
|
Vector3 normalX = new Vector3(0, 1, 0);
|
Rechne ich das aber per Hand aus, so kommen dort sehr fragwürdige Ergebnisse raus.
Kann mir jemand einen Tip geben? Ich stehe gerade etwas auf dem Schlauch.
Danke & Gruß