이거 한번더 쏘면서 각도를 바꾸면서
타겟을 맞추고싶은데요
일단 한번더쏘는거 조차 못하겠네요 ..
형들 어떻게 하나요?
clear all
close all
figure; hold on
Target=[5,0];
plot(Target(1), Target(2),'s','MarkerFacecolor','k')
B=plot(0,0,'o');
set(B,'MarkerFacecolor','r');
axis([0 6 0 2]);
wind=0.02;
fric=-0.01; %공기 저항 계수 (마찰력=공기저항계수*속도)
grav=-0.2; %중력
theta=pi/4; %발사 각도
x=0; vx=cos(theta); %x의 초기 위치, 속도
y=0; vy=sin(theta); %y의 초기 위치, 속도
dt=0.05; %시간 간격(작을수록 좋지만, 작으면 계산 시간이 많이 걸림)
while(1)
x=x+vx*dt; %dt후의 x 위치 (속도=vx=(x(후)-x(전))/dt)
vx=vx+(wind+fric*vx)*dt; %dt후의 x 속도 (힘=vx'=(vx(후)-vx(전))/dt)
%작용힘=바람+마찰력
y=y+vy*dt; %dt후의 y 위치 (속도=vy=(y(후)-y(전))/dt)
vy=vy+grav*dt; %dt후의 y 속도 (힘=vy'=(vy(후)-vy(전))/dt)
%작용힘=중력
if(y<0); break; end
set(B,'xdata',x,'ydata',y)
pause(0.01)
end
이거 matlab에서 재생하면 포탄처럼 0,0에서 시작해서 포물선으로 공이 움직이거든요
재생이 한번만 되는데 두번어떻게 하는지 궁금해서요
감사합니다. while(1) 부분은 건들지 않나요? , 이것의 목적은 각도를 여러번 고치면서 5,0을 맞추는거거든요 ..
' 다시 초기화시켜서 쏘게끔 해주시면 될거에요 ' 이부분좀 자세히 말씀해주실수 있나요 ? matlab 이제 막 시작해서 ㅜㅜ 너무어렵네요
for문으로 초기화 다시 해서 두 번 돌리든가, while무으로 초기화 다시해서 두 번 돌리든가. 너 이거 어디서 베꼈냐? 저정도 만들었으면 간단한걸 왜 헤매?
이건 교수님이 하신건데 이걸 고치는게 숙제에요 .. 전 늅 이엥 ㅜㅜㅜ
if y<0 아에 지울까요 ?
교수가 겨우 2번 하는걸로 고쳐오래? 나같으면 더 한것도 알아서 하라고 시키겠구만. 초기화 부분만 다시 반복루프 엮으면 끝나잖아.
지우고 자시고 할거 없이, 반복루프만 초기화 포함시켜서 한번 더 만들면 끝이라니까 그러네.
교수가 5,0에 오차범위가 0.00001 이 되도록 각도를 변화시켜서 맞추는것이 숙제에요
초기화가 뭔지 ㅜㅜㅜ 찾으려면 뭐라고 검색해야하나요 ㅜㅜ
아, 질문보니 타겟이 5,0에 또 있는거네? 그런거면, 한번 더 쏜다고 끝나는게 아니네. while문 또 무한으로 돌리되, 계속 값을 바꿔가면서 마지막 값이 타겟이랑 일치하는지 체크하고 일치하면 각도 결과값 내뱉고 끝내야지.
x=0 y=0 임마. 수학도 모르냐?
그거할때 각도도 계속 바꿔야지.
x=0, y=0을 while 안에 포함 ?
x=0, y=0을 다른걸로 쓰기? 아놔 저 하나도모르는데 ㅜㅜ
자소서쓴다고 수업을 잘 안들음 ㅜㅜㅜ
이 새낀 그냥 니들이 알아서 쳐 만들고 내뱉어라 이거네. 괜히 시간만 낭비했구만. ㅉㅉㅉ
욕하지마 ㅜㅜ
while 공부하고올게
매트랩 몇학년 수업이냐?