|
本帖最后由 DaedraMech 于 2025-7-28 12:32 編輯
6 t. m- {9 ~/ _. e) C" [7 n- E
1 b! S+ y' |) X# Q/ K3 P2 \+ B9 P不知道我有沒有正確理解樓主的意思,我先談談自己對坐標變換的理解:
8 ]4 ?2 `& m& P坐標變換矩陣既是變換參數(轉角、位移),又是變換后坐標系的基底在原坐標系上的坐標組合。4 O' ?% `" \; X; v/ [% p
x0 y# A" l6 s( V# L7 I樓主在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個代表基底的線段,由此即可建立新坐標系,測量線段端點的坐標值即可獲得變換矩陣。6 G7 K! M% T0 t0 ~1 m
& Y. `9 D; o+ W+ w: I6 o' Q
/ g/ B. `* l+ j9 L3 a G我們來測試一下,我們假設工具坐標系上有一點[0.5 0.6 0.7]',我們想知道該點在法蘭坐標系上的坐標值,那就可以用變換矩陣左乘這個向量:# F% A O) V) ~8 m9 f
8 _) R$ c- d% O% C8 I5 X
把獲得向量的坐標值輸入SW,測量下它在工具坐標系下的坐標,果然還是[0.5 0.6 0.7]',變換矩陣是正確的:
+ e! T. a& T# @0 N. }6 f E3 F4 c$ F6 @% }
# @2 g6 `% Q5 V' {' }( W如果坐標系還有位移,可以使用齊次變換矩陣進行變換:) E0 d' e, c3 L0 ^8 j: }2 G
6 a3 A+ m0 F0 W7 [, w7 Q5 K
上面的演示中,樓主可以看到,矩陣里的坐標值就是特定角度的正弦/余弦值,所以歐拉角可以從這些角度中拆解出來,也就是總變換矩陣可以拆解成一系列單軸角度變換矩陣連續左乘,由此可以表示出坐標系繞各軸旋轉的角度和先后順序,這也就是樓主說的“面角轉換為歐拉角”,過程較為麻煩,我個人不推薦這種方式。
1 p* w: W3 p2 M$ D, N+ l
: d/ r, v+ @( t& T, h6 e, W) {, N9 h5 V
, J. M+ j6 M; H" B2 e" t' ?. c; `$ L
|
本帖子中包含更多資源
您需要 登錄 才可以下載或查看,沒有賬號?注冊會員
×
|