通过指定坐标生成射弹运动

时间:2013-04-07 04:20:19

标签: matlab projectile

我想绘制通过y轴上指定坐标的射弹运动的一半(正增加的一半),直到中点的顶点或运动的平均值。例如,通过指定从(0,0)到(1000,150)并且仅绘制曲线的正半部分,因为另一半将是对称的。曲线前半部分的顶点接近(1000,150)。有人可以为此发布代码。谢谢。

1 个答案:

答案 0 :(得分:4)

所以你正在寻找二次曲线

h(t) = a + b t + c t^2

这样点会经过积分(0,0)(x,y)

0 = a                 #  ->  a = 0
y = a + b x  + c x^2  #  ->  y = x (b + c x)

您还需要曲线的斜率

h'(t) = b + 2 c t

在顶点(x,y)

处为零
0 = b + 2 c x         #  ->  b = -2 c x

因此你有

y = x (-2 c x + c x)  #  ->  c = -y / x^2

所以你想要的代码是

x = 1000;
y = 150;
a = 0;
c = -y/x^2;
b = -2*c*x;

t = 0:x;
h = a + b*t + c*t.^2;

plot(t,h)
grid

这给你这个情节:

enter image description here