明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2156|回复: 8

[已解答] VLISP如何计算欧拉角

[复制链接]
发表于 2014-5-12 10:33 | 显示全部楼层 |阅读模式
100明经币
本帖最后由 Gu_xl 于 2014-5-12 14:28 编辑

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

 楼主| 发表于 2014-5-13 13:12 | 显示全部楼层
本帖最后由 198526 于 2014-5-13 13:13 编辑

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复

使用道具 举报

发表于 2014-5-12 13:44 | 显示全部楼层
  1. (defun D2R (ang) (* (/ ang 180.0) pi))
  2. (defun aaa (ry rx)
  3.   (setq pt '(0 0 -1)
  4.         x  (sin (d2r ry))
  5.         z  (* (cos (d2r ry)) -1)
  6.         y  (* (sin (d2r rx)) z -1)
  7.         z  (* (cos (d2r rx)) z)
  8.   )
  9.   (list x y z)
  10. )
  11. ;; 测试
  12. (aaa 30 45) → '(0.5 0.612372 -0.612372)
回复

使用道具 举报

 楼主| 发表于 2014-5-12 14:16 | 显示全部楼层
谢谢 院长,先研究研究
回复

使用道具 举报

发表于 2014-5-12 14:48 | 显示全部楼层
本帖最后由 Gu_xl 于 2014-5-12 14:52 编辑

  1. (defun D2R (ang) (* (/ ang 180.0) pi))
  2. (defun aa (a b)
  3.   (MAT:MXP
  4.     (MAT:MXM
  5.       (MAT:Rotation3D '(0 0 0) '(1 0 0) b)
  6.       (MAT:Rotation3D '(0 0 0) '(0 1 0) a)
  7.     )
  8.     '(0 0 -1)
  9.   )
  10. )
  11. 测试:
  12. (aa (d2r 30) (d2r 45))
  13. 返回: (-0.5 0.612372 -0.612372)

代码中矩阵函数见高飞鸟 的 【越飞越高讲堂15】用LISP论矩阵
回复

使用道具 举报

 楼主| 发表于 2014-5-12 16:09 | 显示全部楼层
xyp1964 发表于 2014-5-12 13:44

院长您好!谢谢您的回复。我不知是不是我表达得不是很清楚,反正你提供的代码看起来太简单了点,不是我想要的结果。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)。还请帮忙指导。谢谢!
回复

使用道具 举报

 楼主| 发表于 2014-5-12 16:16 | 显示全部楼层
Gu_xl 发表于 2014-5-12 14:48
代码中矩阵函数见高飞鸟 的 【越飞越高讲堂15】用LISP论矩阵

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

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2014-5-12 18:03 | 显示全部楼层
Gu_xl 发表于 2014-5-12 14:48
代码中矩阵函数见高飞鸟 的 【越飞越高讲堂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
但我还是搞不定,请大师出手,谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-4 13:27 , Processed in 5.296746 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表