EDA365电子论坛网

标题: MATLAB中的rotate旋转函数可以旋转一些3D对象,但如何才能绕任意指定轴旋转呢? [打印本页]

作者: onesimus    时间: 2020-4-22 14:51
标题: MATLAB中的rotate旋转函数可以旋转一些3D对象,但如何才能绕任意指定轴旋转呢?
MATLAB中的rotate旋转函数可以旋转一些3D对象,但如何才能绕任意指定轴旋转呢?& R% C& o; ?, \' H( V
$ Z, b) R' K% x, v8 c5 l, v: Q0 ?7 Q
按照官方文档rotate的使用说明,rotate(h,direction,alpha) 将图形对象 h 旋转 alpha 度。指定 h 为曲面、补片、线条、文本或图像对象。direction 是一个二元素或三元素向量,它与旋转轴原点共同确定旋转轴。旋转轴的默认原点是图框中心。该点未必是坐标区的原点。) H3 b' Q# P2 R1 x4 G

- r) n4 ?/ l# X0 Q& S0 m) q9 p  j1 k
  U$ C) H9 o* B文档中的一个图片:
/ _7 ^5 Q$ \  \% }5 ?& N0 Z% A " @6 Z1 W& T2 r& s, W7 @) N: b
这里的P点就是那个direction? origin指图片中心?
  e2 p4 ^1 U7 V6 @* V- m' s  o* B; ~, d8 V& L5 j4 b! ?+ t
; s! f: y5 H: U" u
写了一个小的测试程序进行测试:
' Z; V1 S" _3 Q  K7 R, {6 b; D; e7 L1 ^
2 ^9 Z; d! [; I) k+ K
测试效果:0 t% p% U- Q% X$ a; Q1 T+ J0 U5 n

  m" w' {: X+ `可以看到图像不是按照[0 1 0]即y轴进行旋转,而是绕“处在图片中心,与y轴平行的某个轴” 进行旋转。
0 z9 c, u5 u2 }那如何才能绕坐标中的y轴(也就是图中我画的那条红线)旋转呢?
# e& _3 C6 Y& k! P( ]& t或者能否绕3维空间中的任意指定轴进行旋转呢?请教大神,非常感谢!$ j) y- ~( o( @

作者: Racheler    时间: 2020-4-22 15:42
https://ww2.mathworks.cn/help/matlab/creating_plots/rotate-about-an-arbitrary-axis.html你看看这个能帮你吗




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2