|
@@ -50,3 +50,24 @@ void rotFrom2VecTo2Vec(Punkt3D a, Punkt3D b, Punkt3D c, Punkt3D d) {
|
50
|
50
|
// rvec2.print("rvecdeg2");
|
51
|
51
|
|
52
|
52
|
}
|
|
53
|
+
|
|
54
|
+void rotvec2(Punkt3D a, Punkt3D b, Punkt3D c, Punkt3D d, float *dega, Punkt3D *veca, float *degb, Punkt3D *vecb) {
|
|
55
|
+ *dega = a.calcAngle(b);
|
|
56
|
+ if(*dega==180.0f)
|
|
57
|
+ *veca = a.getOrtographic();
|
|
58
|
+ else if(*dega==0.0f)
|
|
59
|
+ veca->set(1.0f, 0.0f, 0.0f);
|
|
60
|
+ else
|
|
61
|
+ *veca = a.kreuzprodukt(b);
|
|
62
|
+ *degb = 0.0f;
|
|
63
|
+ vecb->set(1.0f, 0.0f, 0.0f);
|
|
64
|
+ c = Rotationsmatrix(*veca, *dega) * c;
|
|
65
|
+
|
|
66
|
+ *degb = c.calcAngle(d);
|
|
67
|
+ if(*degb==180.0f)
|
|
68
|
+ *vecb = c.getOrtographic();
|
|
69
|
+ else if(*degb==0.0f)
|
|
70
|
+ vecb->set(1.0f, 0.0f, 0.0f);
|
|
71
|
+ else
|
|
72
|
+ *vecb = c.kreuzprodukt(d);
|
|
73
|
+}
|