我正在開發一個足球遊戲,用戶必須選擇速度,角度,方位角,以便用戶可以使用所需的選項發佈目標。任何人都可以將我制定爲如何爲遊戲創建軌跡路徑。請幫助我,因爲我無法找到解決方案。3d軌跡路徑計算
Q
3d軌跡路徑計算
-3
A
回答
5
這是基礎物理。假設Z向上,你的初始X-和Y-速度是恆定的,並由初始角度決定(使用trig)。 Z分量完全由重力決定。您採用仰角並(再次使用trig)將其轉換爲組件。那是你最初的Z-速度。
這是最簡單的公式,它忽略了風,旋轉和阻力(即球在飛行期間不會側向移動並且僅受重力影響)。現在
vx = power * cos(elevation) * sin(azimuth);
vy = power * cos(elevation) * cos(azimuth);
vz = power * sin(elevation);
,在時間t
位置是簡單牛頓物理學:
x = vx * t;
y = vy * t;
z = vz * t - 0.5 * g * t * t;
哪裏g
是重力(9.81米/ S/S)
但是直接使用這些公式不讓你計算反彈等。爲此,你需要逐步計算它。這意味着,對於小時間增量(dt
),您可以獲取當前位置和速度並對其進行修改。
vx; // unchanged
vy; // unchanged
vz -= g * dt; // gravity
x += vx * dt;
y += vy * dt;
z += vz * dt;
如果您的Z位置低於地面,您會否定vz
以允許彈跳。如果您碰到表面(反射表面法向量),則可以做類似的反射。
如果你想讓飛行受到旋轉(馬格納斯效應)和其他力量的影響,情況會更加複雜。您可能還想抑制您的反射,因爲每當球彈跳時都會失去能量。
這取決於你。我已經給出了基礎知識,我希望這會有所幫助。
您應該閱讀拋射體運動。一旦你得到了一些基本的工作並想讓動作更真實,請閱讀運動球的空氣動力學/流體力學......幾乎任何Rabindra Mehta的書或文章都是一個很好的起點。
相關問題
- 1. Box2d計算軌跡
- 2. 計算軌跡(路徑)中的轉折點/樞軸點
- 3. 從numpy中的多條軌跡計算平均軌跡
- 4. 3d拋物線軌跡
- 5. 跟蹤軌跡路徑在cocos2d
- 6. 計算兒童兒童的軌跡
- 7. matlab:多軌跡位移計算
- 8. 通過關係計算的軌跡
- 9. 沿軌跡計算地理座標
- 10. JObject計算路徑
- 11. 計算SVG路徑
- 12. 軌跡分析算法
- 13. 將3D形狀面與3D軌跡法線對齊
- 14. 如何獲取最大三角形路徑和的軌跡?
- 15. 在Xcode 4.2中使用GPX路徑或軌跡進行測試
- 16. 太陽的路徑計算
- 17. 計算最長路徑
- 18. 平均3D路徑
- 19. 使用Excel中的經度和緯度計算Great Circle軌跡
- 20. 如何計算Unity2D中子彈的軌跡?
- 21. 計算兩個已知點和IMU之間的軌跡
- 22. 計算軌跡給出的座標和角度
- 23. 在GIS地圖上計算平行軌跡
- 24. 在渲染過程中計算Sql的軌跡
- 25. 子彈軌跡
- 26. 飛盤軌跡
- 27. 軌跡/計數解鎖圖案製作
- 28. 軌路由 - 路徑問題
- 29. 計算目錄相對於另一個路徑的路徑,其計算路徑爲絕對形式
- 30. 國際軌道軌跡
那個鏈接讓我變成一個大老的404. –
你正在處理電梯,拖動,旋轉,風,*等*嗎?如果不是,並且您只需要基於初始速度,方向和重力的軌跡,則可以用拋物線精確計算。否則,最好在一系列小而分散的步驟中計算曲線(或者讓自己陷入可怕的積分)。 – paddy
@paddy:不,我不使用任何這種類型。如果可能的話,請給我一個樣品。 – user1512727