一、简介

说明了斜抛物体在斜坡上的射程计算方法,求出了最大射程与坡度关系,详细讨论了射程与坡度的关系。通过图片显示射程与射角的关系,最大射程与坡度的关系。

二、源代码

%斜抛物体的射程
clear                                  %清除变量
a1=-45;                                %最小坡度
alpha=a1:15:45;                        %斜坡仰角的度数
a=alpha*pi/180;                        %化为弧度数
n=length(a);                           %坡度的个数
theta=a1:5:90;                         %物体射角的度数
th=theta*pi/180;                       %物体射角的弧度数
[A,TH]=meshgrid(a,th);                 %仰角和射角矩阵
S=2*sin(TH-A).*cos(TH)./cos(A).^2;     %射程矩阵(以水平最大射程为单位)
S(S<0)=nan;                            %小于零的射程没有意义(化为非数)
figure                                 %创建图形窗口
%plot(theta,S,'LineWidth',2)            %画射程曲线族
plot(theta,S(:,1),'o-',theta,S(:,2),'d-',theta,S(:,3),'s-',...
    theta,S(:,4),'p-',theta,S(:,5),'h-',theta,S(:,6),'<-',...
    theta,S(:,7),'>-')                 %画射程运动曲线族
grid on                                %加网格
h=legend([repmat('坡度:',n,1),num2str(alpha'),repmat('\circ',n,1)]);%插入坡度图例
fs=16;                                 %字体大小
set(h,'FontSize',fs-2)                 %放大图例
thm=45+alpha/2;                        %最大射程的射角
sm=1./(1+sin(a));                      %最大射程
text(thm,sm,num2str(sm',3),'FontSize',fs)%标记最大射程(保留3位)
th0=a1*ones(1,n);                      %最大射程水平线的起点横坐标
hold on                                %保持图像
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.

三、运行结果

【运动学】斜抛物体斜坡射程matlab源码_matlab