%绘制桁架函数,Scale为变形缩放系数(以下为绘制图像部分) function ForcePlot(ele,Load,Constr,x,y,U,LineWidth,LineStyle,AxialForce) CoordScale=[max(x)-min(x),max(y)-min(y)]; k=1; % AxialForce 2*Ele_num maxForce=max(max(abs(AxialForce))); Scale=CoordScale(1)/maxForce/3; % %计算变形后坐标 % for i=1:length(x) % if Constr(k,1)==i%--约束节点坐标不变 % k=k+1; % else%--非约束节点坐标加上缩放后的位移 % x(i)=x(i)+Scale*U(2*i-1,1);y(i)=y(i)+Scale*U(2*i,1); % end % end %绘制杆件 jet_color = colormap(jet(ceil(max(AxialForce(1,:))-min(AxialForce(1,:))+1)));%+1是为了避免索引为0 color_index = ceil(AxialForce(1,:)+(1-min(AxialForce(1,:)))); for i=1:length(ele(:,1)) plot([x(ele(i,2)),x(ele(i,3))],[y(ele(i,2)),y(ele(i,3))],... 'k-','LineWidth',LineWidth*ele(i,4)/max(ele(:,4))); hold on end %绘制力 for i=1:length(ele(:,1)) if x(ele(i,2))==x(ele(i,3)) plot([x(ele(i,2)),x(ele(i,2))+Scale*AxialForce(1,i),x(ele(i,3))+Scale*AxialForce(2,i),x(ele(i,3))],[y(ele(i,2)),y(ele(i,2)),y(ele(i,3)),y(ele(i,3))],... 'color',jet_color(color_index(i),:),'LineWidth',LineWidth*ele(i,4)/max(ele(:,4))); else plot([x(ele(i,2)),x(ele(i,2)),x(ele(i,3)),x(ele(i,3))],[y(ele(i,2)),y(ele(i,2))+Scale*AxialForce(1,i),y(ele(i,3))+Scale*AxialForce(2,i),y(ele(i,3))],... 'color',jet_color(color_index(i),:),'LineWidth',LineWidth*ele(i,4)/max(ele(:,4))); end hold on end colorbar caxis([min(AxialForce(1,:)),max(AxialForce(1,:))]); % figure % for i=1:length(ele(:,1)) % plot([x(ele(i,2)),x(ele(i,3))],[y(ele(i,2)),y(ele(i,3))],... % LineStyle,'LineWidth',LineWidth*ele(i,4)/max(ele(:,4))); % % hold on % end %绘制节点 for i=1:length(x) x1=x(i);y1=y(i); scatter(x1,y1,15,'k','filled') end %绘制载荷 maxLoad=abs(Load(1,2))%寻找绝对值最大的·载荷 for i=1:length(Load(:,1)) if(maxLoad