[原][算法]分解計算三維空間拋物線


/***********分解三維空間拋物線*************
計算方法:已知空間兩點,起始點(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)
*/

 

 

我這里已知只有空間中的發射點和定中目標點,中間飛行經過的點是自己定的。

計算方式是,將三維的點轉化到二維計算,再通過向量反算出三維的坐標即可。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM