63 lines
1.1 KiB
Mathematica
63 lines
1.1 KiB
Mathematica
|
|
function [M]=drawflighter1(x,y,z,pitch,yaw,scale_factor,step,RGB)
|
|||
|
|
%x,y,z<EFBFBD>ռ<EFBFBD>λ<EFBFBD><EFBFBD>
|
|||
|
|
%pitch <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
%yaw ƫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
% scale_factor<EFBFBD>ɻ<EFBFBD><EFBFBD><EFBFBD>С
|
|||
|
|
%step <EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
% RGB <EFBFBD><EFBFBD>ɫ
|
|||
|
|
|
|||
|
|
% theView=[82.50 2];
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
load mig;
|
|||
|
|
V=[V(:,2) V(:,1) V(:,3)];
|
|||
|
|
V(:,1)=V(:,1)-round(sum(V(:,1))/size(V,1));
|
|||
|
|
V(:,2)=V(:,2)-round(sum(V(:,2))/size(V,1));
|
|||
|
|
V(:,3)=V(:,3)-round(sum(V(:,3))/size(V,1));
|
|||
|
|
|
|||
|
|
|
|||
|
|
correction=max(abs(V(:,1)));
|
|||
|
|
V=V./(scale_factor*correction); % <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD>
|
|||
|
|
ii=length(x); % <EFBFBD><EFBFBD><EFBFBD>곤<EFBFBD><EFBFBD>
|
|||
|
|
counter=mod(ii,step); % <EFBFBD>ɻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
|
|||
|
|
yaw=-yaw;
|
|||
|
|
|
|||
|
|
for i=1:step:(ii)
|
|||
|
|
theta=pitch(i);
|
|||
|
|
psi=yaw(i);
|
|||
|
|
|
|||
|
|
Tbe=[cos(psi)*cos(theta), -sin(psi)*cos(theta), sin(theta);
|
|||
|
|
sin(psi),cos(psi),0;
|
|||
|
|
-cos(psi)*sin(theta),sin(psi)*sin(theta),cos(theta)];
|
|||
|
|
|
|||
|
|
Vnew=V*Tbe;
|
|||
|
|
rif=[x(i) y(i) z(i)];
|
|||
|
|
X0=repmat(rif,size(Vnew,1),1);
|
|||
|
|
Vnew=Vnew+X0;
|
|||
|
|
p=patch('faces', F, 'vertices' ,Vnew);
|
|||
|
|
set(p, 'facec', RGB);
|
|||
|
|
set(p, 'EdgeColor','none');
|
|||
|
|
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
hold on
|
|||
|
|
plot3(x,y,z,':','Color',[0.5 0.5 0.5],'linewidth',0.5);
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
% grid on;
|
|||
|
|
% view(theView);
|
|||
|
|
|
|||
|
|
% daspect([1 1 1]) ;
|
|||
|
|
|
|||
|
|
|
|||
|
|
% xlabel('X(m)');
|
|||
|
|
% ylabel('Y(m)');
|
|||
|
|
% zlabel('h(m)');
|
|||
|
|
|
|||
|
|
M=0;
|
|||
|
|
|