如果我已經計算出一個線段和一個圓之間的交點,我該如何判斷這個交點是否位於圓的一段上?計算點和圓段碰撞
我有方程式來判斷一個線段是否與圓相交,並且我也有該圓上的交點,但我需要知道的是該圓上的這個碰撞點是否在該圓圈的特定arg段的邊界。我有圓弧段的終點,半徑的圓心&和碰撞點。
如果我已經計算出一個線段和一個圓之間的交點,我該如何判斷這個交點是否位於圓的一段上?計算點和圓段碰撞
我有方程式來判斷一個線段是否與圓相交,並且我也有該圓上的交點,但我需要知道的是該圓上的這個碰撞點是否在該圓圈的特定arg段的邊界。我有圓弧段的終點,半徑的圓心&和碰撞點。
將交點轉換爲中心周圍的polar coordinates並比較角度。
我沒有任何角度。我給出的唯一數據是弧的兩個端點。 – 2010-09-14 20:55:41
@Scienceprodigy你可以使用圓的中心點和弧點找到角度。您需要爲角度(通常爲x軸)選擇參考軸,並選擇是否逆時針或順時針增加或減小角度。 – 2010-09-14 21:05:17
至於達里奧想法的替代方案(這應該工作以及),您可以:
intdist1
和intdist2
)。arcdist
)。intdist1
和intdist2
都小於arcdist
,則知道該點是否在圓弧中。intdist1
或intdist2
大於arcdist
。我猜測,因爲你沒有另外指定,端點之間的圓弧走短路。在這種情況下,您不必擔心上述第4步。
如果您使用的圓弧精確地覆蓋了圓的180度,則此方法失敗。在這種情況下,您可以將180度弧線分解成90度弧線,並檢查它們。
此外,您當然也可以使用距離的平方來比較這些距離以節省自己的平方根。另外,這種方法應該比計算角度更快,因爲這些方法涉及使用昂貴的反餘弦。
請嘗試http://math.stackexchange.com。 – kennytm 2010-09-14 20:41:47