Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Output
- 1, 0.000122, -0.000122, -0.000742
- -0.0139697970533148, -0.0279395932786252, 0.0850286761159263
- 0.923879, 0, 0, -0.382683
- 0, 0, 44.9999243069029
- 0.921593, 0, -0.388156, 0
- 0, -63.9747933434819, 0
- 0.922824, -0.385187, 0.002027, -0.004683
- 45.3082404864558, 0.0217477652132213, 0.83138677312262
- 0.852329, 0.147665, -0.356494, -0.353046
- -4.3666374071391E-05, -55.1072147579062, 44.9999563244289
- 0.852672, -0.355673, -0.147325, -0.353186
- 45.2846555490603, -55.0035426284763, 44.9995303315749
- 0.859898, -0.349869, -0.353665, -0.114391
- 43.0483665090359, -69.8530490960553, -3.98170732347442
- 0.741364, -0.203753, -0.454495, -0.449773
- 45.3122167626241, -73.6222763862334, 43.2312805970048
- 0.728665, -0.190846, -0.466389, -0.463794
- 45.2953545085194, -73.9751782030813, 45.0540284997163
- */
- double[] arr = new double[]{
- 1.000000, 0.000122, -0.000122, -0.000742,
- 0.923879, 0.000000, 0.000000, -0.382683,
- 0.921593, 0.000000, -0.388156, 0.000000,
- 0.922824, -0.385187, 0.002027, -0.004683,
- 0.852329, 0.147665, -0.356494, -0.353046,
- 0.852672, -0.355673, -0.147325, -0.353186,
- 0.859898, -0.349869, -0.353665, -0.114391,
- 0.741364, -0.203753, -0.454495, -0.449773,
- 0.728665, -0.190846, -0.466389, -0.463794
- };
- for(int i = 0; i < arr.Length/4; i++)
- {
- double w = arr[i*4], x = arr[i*4+1], y = arr[i*4+2], z = arr[i*4+3];
- Console.WriteLine("{0}, {1}, {2}, {3}", w, x, y, z);
- euler_angles(w, x, y, z);
- Console.WriteLine();
- }
- public static void euler_angles(double w, double x, double y, double z)
- {
- var xa = Math.Asin(2*y*z - 2*x*w);
- var ya = -Math.Atan2(2*x*z - 2*y*w, 0.5 - x*x - y*y);
- var za = -Math.Atan2(x*y + z*w, 0.5 - x*x - z*z);
- Console.WriteLine("{0}, {1}, {2}", xa/Math.PI*180, ya/Math.PI*180, za/Math.PI*180);
- }
Advertisement
Add Comment
Please, Sign In to add comment