[MATLAB] rolling pitching을이용한 전투기 이륙
전투기소스는 학교에있어서 종이학알모형으로 대체..ㅋㅋ
암튼... 첫번째 for문은 직진롤링
두번째 for문은 상승하면서 피칭을써서 자연스럽게 깃수가 올라가게 만들었음.
x=[ 0 15 0 12 15 12 0;
0 12 15 12 12 12 0;
0 0 0 12 0 -12 0;
1 1 1 1 1 1 1];
% i ==x축으로 이동거리
for i= 0: 1 :60
th=i*720/60;
movex=[ 1 0 0 i;
0 1 0 0;
0 0 1 0;
0 0 0 1];
rolling=[1 0 0 0;
0 cosd(th) -sind(th) 0;
0 sind(th) cosd(th) 0;
0 0 0 1];
mvx=movex*x; %x축으로 이동시키는 movex matrix를 이용해서 mvx matrix를 만든다.
rollx=rolling*mvx; %mvx에 rolling matrix를 곱해서 rollx matrix를 만든다.
clf;
line([rollx(1,:) rollx(1,1)], [rollx(2,:) rollx(2,1)] , [rollx(3,:) rollx(3,1)]);
%rollx(전진하면 회전하는)모습을 그래프에 그린다.
VIEW([ 0 180 0])
axis([ -150 150 -150 150 -150 150])
pause(0.001)
end
%두번째 for문. 상승하며 자연스럽게 비행기 각도가 올라감
for i=0 : 3: 60
%x축과 z축을 동시에 증가시킴-> 대각선으로 진행함
movex=[ 1 0 0 i;
0 1 0 0;
0 0 1 0;
0 0 0 1];
movez=[ 1 0 0 0;
0 1 0 0;
0 0 1 i;
0 0 0 1];
%matrix설명 movex는 x축으로 이동시키는 matrix이고
%movez는 z축으로 이동시키는 matrix이다.
%이 두개의 matrix가 직전 행렬인 rollx에 곱해진다면
%비행기는 대각선으로 올라갈것이다.
th=i*30/60;
pitch=[cosd(th) 0 -sind(th) 0;
0 1 0 0;
sind(th) 0 cosd(th) 0;
0 0 0 1];
%movex movez만 쓴다면 비행기는 기수를 높이지 않은채로 대각선상승만 할것이다.
%그래서 대각 상승하는동안 그에맞춰 피칭을 해주었다.
%그래서 결과값인 pitchy는 기수를 높이며 대각선으로 자연스럽게 상승한다.
mvx=movex*rollx;
mvxz=movez*mvx;
pitchy=pitch*mvxz;
clf;
line([pitchy(1,:) pitchy(1,1)], [pitchy(2,:) pitchy(2,1)] , [pitchy(3,:) pitchy(3,1)]);
%line함수로 pitchy를 그래프에 그려줍니다.
VIEW([ 0 180 0])
axis([ -150 150 -50 50 -150 150])
pause(0.001)
end
'소프트웨어 > MATLAB' 카테고리의 다른 글
MATLAB 웹캠영상 흑백화하기 (0) | 2012.05.27 |
---|---|
MATLAB에서 이미지를 흑백으로 만들기 (0) | 2012.05.27 |
MATLAB에서 웹캠 불러오기 (3) | 2012.05.27 |
matlab 에서 녹화/그래프 촬영 하기 (0) | 2012.04.12 |
matlab, rand함수를 이용한 두점 만나게하기 (0) | 2012.04.12 |
matlab을이용한 원과 궤적이동 (2) | 2012.04.12 |
매트랩을 이용한 가우스소거법 (5) | 2012.04.08 |