問題。
根據以下運算式,創建一個
drawparabolicshot.m表示 3D 拋物線鏡頭的函式,知道該函式的輸入是角度O和:phix=vo*cos(O)*cos(phi)*t, y=vo*cos(O)*sin(phi)*t, and z=vo*sin(O)*t-(g/2)*t^2.在表示函式的那一刻,使用
plot3和pause看看它是如何繪制拋物線軌跡的,之前已經固定xlim,ylim和zlim。
試圖。
function dibujatiroparabolico(phi, O)
vo=100; %example of vo
g=9.8;
tmax=(2*vo*sin(O))/(g);
i=1;
for t=linspace(0,tmax)
x(i)=vo*cos(phi)*cos(O)*t;
y(i)=vo*cos(O)*sin(phi)*t;
z(i)=vo*sin(O)*t-(g/2)*t.^2;
i=i 1;
hold on
pause on
plot3(x,y,z)
end
問題。但它繪制了一條直線,但沒有顯示它是如何構建的,并且是二維的,即使我使用了plot3.
當我用phi=piand的例子繪制它時會發生什么O=pi/4:
新編輯。
function dibujatiroparabolico(phi, O)
vo=100;
g=9.8;
tmax=(2*vo*sin(O))./(g);
i=1;
for t=linspace(0,tmax)
x(i)=vo*cos(phi)*cos(O)*t;
y(i)=vo*cos(O)*sin(phi)*t;
z(i)=vo*sin(O)*t-(g/2)*t.^2;
i=i 1;
pause(0.1)
plot3(x,y,z)
xlim([0 tmax*vo*cos(O)*cos(phi)])
ylim([0 tmax*vo*cos(O)*sin(phi)])
zlim([0 vo*sin(O)*(tmax/2)-(g/2)*(tmax/2).^2])
hold on
end

uj5u.com熱心網友回復:
您提供的代碼對我不起作用,因為當 phi = pi 時 cos(phi) 為 -1。xlim()想要順序 [min mix] 的限制,所以我用 xlim(sort([0 tmax vo cos(O)*cos(phi)])) 更正了您的代碼。這對任何 phi 和 O 值都應該是穩健的。
運行此代碼時,我得到一個“射彈”在繪圖視窗中飛行的影片,具有固定的限制。
dibujatiroparabolico(pi, pi/4)
function dibujatiroparabolico(phi, O)
vo=100;
g=9.8;
tmax=(2*vo*sin(O))./(g);
i=1;
for t=linspace(0,tmax)
x(i)=vo*cos(phi)*cos(O)*t;
y(i)=vo*cos(O)*sin(phi)*t;
z(i)=vo*sin(O)*t-(g/2)*t.^2;
i=i 1;
plot3(x,y,z)
xlim(sort([0 tmax*vo*cos(O)*cos(phi)]))
ylim(sort([0 tmax*vo*cos(O)*sin(phi)]))
zlim(sort([0 vo*sin(O)*(tmax/2)-(g/2)*(tmax/2).^2]))
pause(0.1)
hold on
end
end
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/514961.html
