%绘制桁架函数,Scale为变形缩放系数 function RenderTruss(ele,Load,Constr,x,y,z,U,LineWidth,NodeSize,LineStyle,Scale) CoordScale=[max(x)-min(x),max(y)-min(y),max(z)-min(z)]; k=1; %计算变形后坐标 for i=1:length(x) if Constr(k,1)==i%--约束节点坐标不变 k=k+1; else%--非约束节点坐标加上缩放后的位移 x(i)=x(i)+Scale*U(3*i-2,1);y(i)=y(i)+Scale*U(3*i-1,1);z(i)=z(i)+Scale*U(3*i,1); end end %绘制杆件 for i=1:length(ele(:,1)) plot3([x(ele(i,2)),x(ele(i,3))],[y(ele(i,2)),y(ele(i,3))],[z(ele(i,2)),z(ele(i,3))],... LineStyle,'LineWidth',LineWidth*ele(i,4)/max(ele(:,4))); hold on end %绘制节点 for i=1:length(x) [xx,yy,zz]= ellipsoid(x(i),y(i),z(i),NodeSize,NodeSize,NodeSize); surf(xx,yy,zz,'facecolor','k') end %绘制载荷 maxLoad=abs(Load(1,2))%寻找绝对值最大的·载荷 for i=1:length(Load(:,1)) if(maxLoad