|
本帖最后由 DaedraMech 于 2025-7-28 12:32 编辑
0 L0 V& b r8 s5 N* i* _9 W
$ E, r, {) r4 D( E不知道我有没有正确理解楼主的意思,我先谈谈自己对坐标变换的理解:' A9 k* u2 N a. m$ P1 i, x7 R
坐标变换矩阵既是变换参数(转角、位移),又是变换后坐标系的基底在原坐标系上的坐标组合。! K5 D6 J/ j( g6 i! d/ ^- I
( i& ^, ?( }5 ~5 U
楼主在SW中使用的方法是控制三个正交平面和原平面各成30°,我个人更喜欢直接建立坐标系,由于x轴是YZ面法向量/y轴是XZ面法向量/z轴是XY面法向量,所以我约束3个新坐标轴和原坐标轴各成30°达到效果和楼主应该是一样的。三个基底([ix iy iz],[jx jy jz],[kx ky kz])有9个未知坐标值,有【3个基底长度为1】、【新基底和原坐标轴各成30°】、【基底之间互成90°】这9个约束一定能在SW中画出3个代表基底的线段,由此即可建立新坐标系,测量线段端点的坐标值即可获得变换矩阵。/ X! L* m( X0 _) Y
0 x" E/ X- P& A9 c2 L L3 e z$ @+ I7 F
我们来测试一下,我们假设工具坐标系上有一点[0.5 0.6 0.7]',我们想知道该点在法兰坐标系上的坐标值,那就可以用变换矩阵左乘这个向量:
( D( F' l/ ?! j, Z$ }4 ?4 m& w+ l2 B$ h
把获得向量的坐标值输入SW,测量下它在工具坐标系下的坐标,果然还是[0.5 0.6 0.7]',变换矩阵是正确的:7 k/ }8 T* G& g0 I2 U) L8 B
Q5 h! I m7 g! W% i. z* p3 ]% e( K. W7 ~# ?0 k6 T# B) Z
如果坐标系还有位移,可以使用齐次变换矩阵进行变换:
+ s$ E5 w9 v4 i; Z1 }' e
* Q. ` B5 b# A% W" n上面的演示中,楼主可以看到,矩阵里的坐标值就是特定角度的正弦/余弦值,所以欧拉角可以从这些角度中拆解出来,也就是总变换矩阵可以拆解成一系列单轴角度变换矩阵连续左乘,由此可以表示出坐标系绕各轴旋转的角度和先后顺序,这也就是楼主说的“面角转换为欧拉角”,过程较为麻烦,我个人不推荐这种方式。$ A$ t, I# C( K2 B/ j) \
. v( e: H, P0 p# Y: f- m; Q- T+ i% X& A4 ^9 }; g5 T
v: A, p7 h, w: {
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册会员
×
|