抛物线公式推导详解

1.基本公式

是初速度,t是时间,a是加速度,是末速度

(1). 

(2).  

(3). 

(4). 

对应自由落体公式,即,,是重力加速度,是平均速度

(1). 

(2). 

(3). 

(4). 

参考文章:

匀变速直线运动的速度位移关系(重点比较中时速和中位速)

【高中】匀变速直线运动-自由落体运动


2.给定起始点,目标点,重力加速度,初速度,求发射角度

设水平距离为,垂直差为

初速度分解为水平初速度,垂直速度为

抛物线分解成两个方向,水平移动量为匀速运动,

垂直方向移动为匀加速运动,

如果与与值不相同则公式为,,即减掉时= 0

为了消除,把水平移动公式转成,代入垂直方向移动公式

展开,

简化,,

根据三角恒等式,参考链接 https://www.shuxuele.com/algebra/trig-magic-hexagon.html

得,

再展开,

整理得,

得到一个以为末知数的方程,其中

最后用一元二次方程的公式解方程

如果  < 0,则方程无解,等于0两个解相同,大于0两个解

把a,b,c代入公式,


最后 ,

参考文章:https://zhuanlan.zhihu.com/p/99477136



3.给定起始点,目标点,重力加速度g,发射角度,求初速度

求初速度与求发射角前部份公式相同,即

当Y=0时, 

即是初速度

参考文章:https://physics.stackexchange.com/questions/60595/solve-for-initial-velocity-of-a-projectile-given-angle-gravity-and-initial-and?rq=1 第二个回答



4.给定起始点P_0(x,y),目标点P_1(x,y),重力加速度g,最大高度,求初速度

抛物线

desmos实现 https://www.desmos.com/calculator/vw2esabqru

实现步骤,假定初速度为0

,

根据公式,由于初速度为0,,得到垂直初速度

再求水平初速度,分开为两段,根据公式

得到总时间 t = t1 + t2 ,将水平距离除以总时间,得到水平初速度



5.初速度与距离在3D空间里的里转换

V0 为初速度向量

水平分量 Vx = Vector3.ProjectOnPlane(V0, vector3.up)

垂直分量  Vy = Vector3.Project(V0, Vector3.up)

3D空间里的距离,起始点 startPos,目标点targetPos

startPos.y = targetPos.y = 0

水平距离 s = Vector3.Distance(startPos, targetPos)

6.更多资料

这里面Iron-Warrior写了一个例子,github上能下到

How to calculate force needed to jump towards target point?

Solve for Initial Velocity of a projectile given Angle, Gravity, and Initial and Final positions?

Solving for initial velocity required to launch a projectile to a given destination at a different height

Find projectile speed given maximum height and range.

https://www.omnicalculator.com/physics/projectile-motion

Unity 已知落点和速度自动计算发射角度

Unity 计算导弹抛物线弹道和转向

Unity C# 计算导弹抛物线弹道和转向

你可能感兴趣的:(抛物线公式推导详解)