matlab的rotate函数的使用

  • Post author:
  • Post category:其他


利用rotate函数可以实现定轴旋转

rotate(vector,[axis],angle,origin)

函数括号内,第一项为矢量,就是要旋转的矢量;第二项为坐标轴,在空间选定某坐标轴后,矢量绕此坐标轴顺时针旋转;第三项为旋转的角度,第四项为旋转轴的起点坐标,一般默认为坐标原点。

注意:rotate函数的旋转方向默认遵循右手螺旋定则。

下面附上代码实例

%模拟制作简易钟表表盘
t=linspace(0,(2-1/6)*pi,12);
x=2*cos(t);
y=2*sin(t);

hour=plot(x,y,'or');
xlim([-5,5]);
ylim([-5,5]);
%zlim([-10,10]);
hold on
pointer=plot([0,0],[1.8,0]);
i=0;
while i<=160
    i=i+1;
    rotate(pointer,[0,0,-1],2)
    pause(0.1);
end

通过上述代码可以实现形如钟表的表盘指针。

注:1.pointer为所画的钟表指针,plot函数第一个中括号内为x的坐标,第二个中括号内为y的坐标。

2.rotate函数中,如果选取[0,0,1]即z轴正半轴为旋转轴,会呈现出逆时针旋转(因为右手螺旋定则),因此本代码选用[0,0,-1]即z轴负半轴为旋转轴,呈现出顺时针旋转的效果。

3.pause函数为停顿时间,括号内可以尽量取小值,这样停顿很短暂,能呈现出来较平滑旋转的效果。如果括号内值较大,则指针旋转的顿挫感会较强。



版权声明:本文为m0_51282055原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。