MATLAB旋转体的绘制
使用mesh绘制旋转体
原理:绘制旋转体,在于确定旋转的曲线以及所要绕着旋转的轴。例如,将一个YoZ平面上的半圆:z^2+(y-r)^2 = 1(z>=0)绕z轴旋转而成的旋转体。示意图如下:
当绕z轴旋转alpha角度时(实际是逆时针旋转,这里为方便观察画成顺时针),z坐标不变,y坐标变为y*cos(alpha),x坐标为y*sin(alpha),使用mesh绘图时,需要提供所有点的坐标,使用矩阵形式。如果是alpha为0,则是对应的一个半圆的坐标,为1,又是一个。所以使用列向量乘以行向量,得到若干半圆的坐标。先画4个半圆观察一下:
r = 2;
y = linspace(r,r+2,20);
z = sqrt(1-(y-1-r).^2);
alpha = 0:1:3;
X = y'*sin(alpha)
Y = y'*cos(alpha)
Z = z'*ones(1,4)
mesh(X,Y,Z)
axis equal vis3d
XYZ之所以不加分号是可以观察一下形成的3个矩阵。其中每一列对应一个半圆的3个坐标。这是效果图:
注意其实旋转方向是正确的,只是MATLAB的y坐标的方向是反着的。
如此,可以改变alpha的取值ÿ