参考链接:https://blog.csdn.net/weixin_44492796/article/details/88583536
绘制圆柱需要提供上底面和下底面的圆心的绝对坐标。以及半径。通过得到圆柱高的向量,然后通过null函数,得到正交基,获得相对坐标系,首先计算出圆柱相对坐标,之后通过坐标变换法获得圆柱两底面的绝对坐标。之后通过surf函数绘制。
%绘制圆柱
%需要知道中轴线线段的位置,以及圆筒的半径
%中轴线两端点的坐标,圆柱的高度。
obstracle_R=5;
obstracle_L_center=[10 70 0];
obstracle_H_center=[10 10 40];
%建立底面圆心所在的坐标系
Vector=obstracle_H_center-obstracle_L_center;
obstracle_hight=norm(Vector);
CZ=Vector/norm(Vector);
CZout=null(CZ);
CX=CZout(:,1);
CY=CZout(:,2);
CZ=CZ';
Trans=[[CX CY CZ obstracle_L_center'];0 0 0 1];
Lx=zeros(2,51);
Ly=Lx;
Lz=Lx;
for i=1:50
Lx(1,i)=obstracle_R*cos(i*2*pi/50);
Ly(1,i)=obstracle_R*sin(i*2*pi/50);
Lz(2,i)=obstracle_hight;
Lz(1,i)=0;
end
Lx(1,51)=Lx(1,1);
Ly(1,51)=Ly(1,1);
Lz(1,51)=0;
Lz(2,51