198526 发表于 2014-5-12 10:33:23

VLISP如何计算欧拉角

本帖最后由 Gu_xl 于 2014-5-12 14:28 编辑

已知向量A(0,0,-1)绕Y轴旋转I度,然后再绕之前的X轴旋转J度,得到向量B.求向量A转换成向量B的欧拉角表达式。
请各位大神支招。十分感谢!

198526 发表于 2014-5-13 13:12:17

本帖最后由 198526 于 2014-5-13 13:13 编辑

问题补充:
已知向量A(0,0,-1)绕Y轴旋转I度,然后再绕之前的X轴旋转J度,得到向量B.
求附件图中A向量转换成B向量 α β γ的值
请各位大师指导,谢谢!

xyp1964 发表于 2014-5-12 13:44:22

(defun D2R (ang) (* (/ ang 180.0) pi))
(defun aaa (ry rx)
(setq pt '(0 0 -1)
      x(sin (d2r ry))
      z(* (cos (d2r ry)) -1)
      y(* (sin (d2r rx)) z -1)
      z(* (cos (d2r rx)) z)
)
(list x y z)
)
;; 测试
(aaa 30 45) → '(0.5 0.612372 -0.612372)

198526 发表于 2014-5-12 14:16:11

谢谢 院长,先研究研究

Gu_xl 发表于 2014-5-12 14:48:32

本帖最后由 Gu_xl 于 2014-5-12 14:52 编辑


(defun D2R (ang) (* (/ ang 180.0) pi))
(defun aa (a b)
(MAT:MXP
    (MAT:MXM
      (MAT:Rotation3D '(0 0 0) '(1 0 0) b)
      (MAT:Rotation3D '(0 0 0) '(0 1 0) a)
    )
    '(0 0 -1)
)
)
测试:
(aa (d2r 30) (d2r 45))
返回: (-0.5 0.612372 -0.612372)
代码中矩阵函数见高飞鸟 的 【越飞越高讲堂15】用LISP论矩阵

198526 发表于 2014-5-12 16:09:50

xyp1964 发表于 2014-5-12 13:44 static/image/common/back.gif


院长您好!谢谢您的回复。我不知是不是我表达得不是很清楚,反正你提供的代码看起来太简单了点,不是我想要的结果。http://wenku.baidu.com/view/c789b628915f804d2b16c149.html。请帮忙看一下这个,我是想要得到欧拉角对应的三个角度。我有两个已知的结果 其一如果绕Y轴旋转45度 绕X轴旋转-15度得到的三个角度是(-110.754 46.92 104.511) 其二如果绕Y轴旋转-30度 绕X轴旋转-10度得到的三个角度是(109.425 31.475 -106.74)。还请帮忙指导。谢谢!

198526 发表于 2014-5-12 16:16:26

Gu_xl 发表于 2014-5-12 14:48 static/image/common/back.gif
代码中矩阵函数见高飞鸟 的 【越飞越高讲堂15】用LISP论矩阵

谢谢G版,我看您得出来的结果跟院长的是一样的,但好像都不是我想要的,我最终是想要把这两个角度用欧拉角表达出来。你们得出来的3个值是角度值吗?我基础太差了 请指教。谢谢!

198526 发表于 2014-5-12 17:30:56

两位大师得到的都是旋转后的矢量吧,我想要的是,已知矢量A 绕Y轴旋转a度后再绕之前的X轴旋转b度,得到矢量B.求矢量A转成矢量B的欧拉角表达方式,我要的是一个欧拉角的表达式也就是说不通过“绕Y轴旋转a度后再绕之前的X轴旋转b度”这个 而是通过欧拉角来把矢量A转换为矢量B。如果只要结果矢量B是简单好多,因为我是要把这个转换成五轴数控机床使用,机床只识别欧拉角,所以我要把“绕Y轴旋转a度后再绕之前的X轴旋转b度”转换成欧拉角的表达样式。
再次恳请各位大师指导。谢谢!

198526 发表于 2014-5-12 18:03:17

Gu_xl 发表于 2014-5-12 14:48 static/image/common/back.gif
代码中矩阵函数见高飞鸟 的 【越飞越高讲堂15】用LISP论矩阵

G版您好!
(MAT:MXM
      (MAT:Rotation3D '(0 0 0) '(1 0 0) b)
      (MAT:Rotation3D '(0 0 0) '(0 1 0) a)
    )
这段代码应该是得到了一个旋转四元矩阵
再只要想办法把四元矩阵转换为欧拉角,我在网上查了一下,看下面链接
http://www.docin.com/p-362403088.html
但我还是搞不定,请大师出手,谢谢!
页: [1]
查看完整版本: VLISP如何计算欧拉角