[原][算法]分解计算三维空间抛物线

/***********分解三维空间抛物线*************
计算方法:已知空间两点,起始点(x0,y0,z0)与目标点(x1,y1,z1)

转化三维到二维

将起始点作为原点,用 目标点的向量v1(x1,y1) - 起始点的向量v0(x0,y0)得到方向向量 vectorReal
用得到的向量vectorReal的长度(模)作为新二维的x,原来三维的z作为新二维的y

规定:
    三维的  起始点    为新二维的  原点(0,0)
    三维的  目标点的  x值为: len(v1,v0)    y值为:z1 - z0  

    !!再选取他们的 中间点,且高度为长度一半,作为抛物线必经点,来计算一个简单的抛物线
    中间点    x值:len(v1,v0)/2.0   y值: max(len(v1,v0)/2.0   , (z1 - z0))  

    这个二维抛物线经过以上三个点
*/

/***********计算二维抛物线**************
已知两点 A(x0 y0)  与 B(x1 y1) 是x非0的点
抛物线公式: y = a*x*x + b*x + c  
由于抛物线经过(0,0)点, 所以 c 为 0
      公式: y = a*x*x + b*x 
带入推导:
    ===>>>  a=(y1*x0 - x1*y0)/(x0*x1*(x1 - x0))  
    ===>>>  b=(y0/x0 - a*x0)
*/

我这里已知只有空间中的发射点和定中目标点,中间飞行经过的点是自己定的。

计算方式是,将三维的点转化到二维计算,再通过向量反算出三维的坐标即可。

原文地址:https://www.cnblogs.com/lyggqm/p/13214691.html