此函数可能存在一些不足,请多多指教!
function plotcylinder(u1,u2,color_a,r)
L=norm(u1-u2);
ROD=u2-u1;
[X,Y,Z]=cylinder(r,100);
x1=X*0;y1=Y*0;z1=Z*0;
Z=L*Z-L/2;
ROD_midpoint=(u1+u2)/2;
x=ROD_midpoint(1);
y=ROD_midpoint(2);
z=ROD_midpoint(3);
a=[1 0 0];b=[0 1 0];c=[0 0 1];
if(ROD(2)==0||ROD(1)==0)
if(ROD(2)==0) % 在XZ平面
angel=acos(dot(ROD,c)/norm(ROD)/norm(c));
if(ROD(1)<0)
angel=-angel; %%
end
A2=[cos(angel) 0 sin(angel);0 1 0; -sin(angel) 0 cos(angel)]; % 绕Y轴旋转
for i=1:length(X(1,:))
u=[X(1,i) Y(1,i) Z(1,i)]';
u1=A2*u;
x1(1,i)=u1(1);y1(1,i)=u1(2);z1(1,i)=u1(3);
u=[X(1,i) Y(1,i) Z(2,i)]';
u1=A2*u;
x1(2,i)=u1(1);y1(2,i)=u1(2);z1(2,i)=u1(3);
end
end
if(ROD(1)=