2010-01-27 126 views
5

我想弄清楚在3d空間中使用弧的一些計算,但有點丟失。假設我想在3d空間中創建一個弧來連接2個x,y,z座標(這兩個座標的z值爲0,並且只是平面上的點)。我通過發送起點x,y,z位置,旋轉,速度和重力值來控制弧。如果我知道需要連接的x,y,z座標,有沒有辦法計算將起始x,y,z座標連接到最終座標的必要旋轉,速度和重力值?3d拋物線軌跡

謝謝。

編輯:謝謝tom10。爲了澄清,我通過創建帶有粒子的拋物線來製作「弧線」。我試圖弄清楚如何(通過開始由具有開始x,y,z,速度,旋轉和重力的一系列粒子形成的拋物線)確定它將在哪裏結束(最後的x,y,z座標)。所以,如果,如果這些都是需要連接兩個座標:

x1=240; 
y1=140; 
z1=0; 

x2=300; 
y2=200; 
z2=0; 

如何旋轉,速度和這個拋物線的重力只使用這些變量開始拋物線形成計算:

x1=240; 
y1=140; 
z1=0; 
rotation; 
velocity; 
gravity; 

我想保持角度不變的值。

+0

聽起來像一個與編程無關的物理問題。另外,順便說一句,「弧」通常是指圓的一部分,但是與重力無摩擦的軌跡通常會產生拋物線。你在找什麼?所以我的建議是澄清這個問題,並連接到編程。 – tom10 2010-01-27 05:32:56

+1

給定飛機上的兩點,無限數量的圓弧將與兩點相交。對於直徑大於或等於點之間距離的平面上的每個圓都有兩個圓,您可以將這些圓中的每一個旋轉到關於通過這兩點的直線的任何角度。 – 2010-01-27 05:47:33

+0

沿Y或Z軸的引力是你的嗎?如果它是y,那麼z可以完全忽略。 – msell 2010-01-27 06:23:51

回答

5

這個link描述了「從(0,0)發射時在距離x和高度y處擊中目標並且以初始速度v發射所需角度θ」的彈道軌跡,這就是你想要的, 對?爲了讓你的變量進入正確的形式,設置旋轉角度(在xy平面中),讓你指向正確的方向,即atan(y/x),並從此開始,以匹配通常的術語二維問題,將z重寫爲y,並將與目標的水平距離(它是sqrt(x x + y y))作爲x,然後您可以直接在鏈接中使用該公式。

0

與2D相同。您只需通過旋轉軸將您的圖形轉換爲仿射空間,以便其中一個變爲零;然後解決並撤消旋轉。