79 lines
2.6 KiB
Mathematica
79 lines
2.6 KiB
Mathematica
|
|
%<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ScaleΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD>(<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD>֣<EFBFBD>
|
|||
|
|
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(AxialForce));
|
|||
|
|
Scale=CoordScale(1)/maxForce/3;
|
|||
|
|
% %<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
% for i=1:length(x)
|
|||
|
|
% if Constr(k,1)==i%--Լ<EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>겻<EFBFBD><EFBFBD>
|
|||
|
|
% k=k+1;
|
|||
|
|
% else%--<EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>
|
|||
|
|
% x(i)=x(i)+Scale*U(2*i-1,1);y(i)=y(i)+Scale*U(2*i,1);
|
|||
|
|
% end
|
|||
|
|
% end
|
|||
|
|
%<EFBFBD><EFBFBD><EFBFBD>Ƹ˼<EFBFBD>
|
|||
|
|
jet_color = colormap(jet(ceil(max(AxialForce(1,:))-min(AxialForce(1,:))+1)));%+1<EFBFBD><EFBFBD>Ϊ<EFBFBD>˱<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ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
|
|||
|
|
%<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
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
|
|||
|
|
%<EFBFBD><EFBFBD><EFBFBD>ƽڵ<EFBFBD>
|
|||
|
|
for i=1:length(x)
|
|||
|
|
x1=x(i);y1=y(i);
|
|||
|
|
scatter(x1,y1,15,'k','filled')
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
%<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>غ<EFBFBD>
|
|||
|
|
maxLoad=abs(Load(1,2))%Ѱ<EFBFBD>Ҿ<EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ġ<EFBFBD><EFBFBD>غ<EFBFBD>
|
|||
|
|
for i=1:length(Load(:,1))
|
|||
|
|
if(maxLoad<abs(Load(i,3)))
|
|||
|
|
maxLoad=abs(Load(i,3))
|
|||
|
|
end
|
|||
|
|
end
|
|||
|
|
for i=1:length(Load(:,1))%<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>غɼ<EFBFBD>ͷ
|
|||
|
|
quiver(x(Load(i,1)),y(Load(i,1)),Load(i,2)/max(maxLoad),...
|
|||
|
|
Load(i,3)/max(maxLoad),...
|
|||
|
|
'LineWidth',1,'color','r','AutoScaleFactor',0.15*(CoordScale(1)+CoordScale(2)),...
|
|||
|
|
'MaxHeadSize',0.01*(CoordScale(1)+CoordScale(2)));
|
|||
|
|
end
|
|||
|
|
%<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD>--ѡ<EFBFBD>ýṹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߴ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD>
|
|||
|
|
for i=1:length(Constr(:,1))
|
|||
|
|
plot([x(Constr(i,1)) x(Constr(i,1))-0.02*max(CoordScale) x(Constr(i,1))+...
|
|||
|
|
0.02*max(CoordScale) x(Constr(i,1))],[y(Constr(i,1)) y(Constr(i,1))-...
|
|||
|
|
0.02*max(CoordScale) y(Constr(i,1))-0.02*max(CoordScale) y(Constr(i,1))],...
|
|||
|
|
'LineWidth',0.8,'color','r');
|
|||
|
|
end
|
|||
|
|
%<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
axis equal
|
|||
|
|
% axis([min(x)-0.1*CoordScale(1),max(x)+0.1*CoordScale(1),min(y)-...
|
|||
|
|
% 0.1*CoordScale(2),max(y)+0.1*CoordScale(2)]...
|
|||
|
|
% ) %<EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>Χ
|
|||
|
|
hold off
|
|||
|
|
end
|