我有一個由三個給定點組成的圓。我怎麼知道另一個給定的點是否在由前三點形成的圓內。這是我需要計算的決定因素嗎?那麼我需要處理哪些情況?如何知道一個點的位置?
1
A
回答
3
看來你想知道一個答案,沒有計算圓參數(半徑,中心)。因此,您可以使用the equation for the circumcircle of the triangle(公式2),用給定的點座標替代(x,y)並計算行列式(Det)符號。
重要提示:點x1,x2,x3應按照逆時針順序。否則 - 改變跡象
| x^2+y^2 x y 1 |
| x1^2+y1^2 x1 y1 1 | = Det
| x2^2+y2^2 x2 y2 1 |
| x3^2+y3^2 x3 y3 1 |
To take mutual orientation of points into account:
Det = Det * ((x1-x3)*(y2-y3)-(y1-y3)*(x2-x3))
If Det = 0 then all four points are concyclic (given point lies at the circle border)
if Det < 0 then point is inside
otherwise it is outside the circle
但我懷疑,這種方法可能需要更多的數學運算,然後半徑和中心點和估計的計算(x-x0)^2+(y-y0)^2 <= R^2
增加: 看來,一般的方法來計算四階行列式在這裏不是很有效:改用第四列的未成年人(Laplace formula here)或WolphramAlpha output
1
如果內圓的半徑小於外圓的半徑,則表示內圓在外圓內(如果需要測試另一個圓是否在外圓內)。
這裏是圓的公式:
x = (Math.cos(angle * Math.PI/180) * radius) + this.centerX;
y = (Math.sin(angle * Math.PI/180) * radius) + this.centerY; // in radians
您可以套用這個公式測試一個點是一個圓內。
要測試兩個圓形是否相交,您必須查看它們的中心之間的距離是否在它們的半徑的總和與差值之間。
相關問題
- 1. 如何知道一個位置(.txt)
- 2. 如何知道用戶點擊UITableViewCell中的哪個位置?
- 3. 如何知道數組的下一個空閒位置
- 4. 如何知道一個位置(如:(CLLocation *)newLocation))是否在路上?
- 5. 如何知道ItemTemplate的序號位置
- 6. 如何知道mysql my.cnf的位置
- 7. 如何知道NullReferenceException的確切位置
- 8. 如何知道SemanticZoom的滾動位置?
- 9. 我如何知道「Program Files」的位置?
- 10. 如何知道javascript的輸入位置
- 11. 我如何知道硒下父節點的位置?
- 12. 如何知道點的位置,垂直於線
- 13. 如何排序表知道行位置?
- 14. 的Python API知道位置
- 15. 如何知道位置是地圖中另一個位置的前/後的位置
- 16. 如何知道哪個地點最接近我的實際當前位置?
- 17. 我如何知道這個實例被釋放的位置?
- 18. 節點知道Java中其他節點的相對位置
- 19. 如何在android中知道通知的位置
- 20. 如何知道正在點擊一個MenuStrip的哪個項目?
- 21. 如何從另一個點知道相鄰點
- 22. 知道一個USB設備的端點
- 23. R:知道表(一個或多個),如何calc下位數(S)
- 24. 如何知道庫函數在哪個位置?
- 25. Django如何知道用戶來自哪個位置?
- 26. 展示位置如何知道要創建哪個佈局?
- 27. 如何知道角色將在哪個位置輸入?
- 28. C#打開一個不知道位置路徑的進程
- 29. 如何知道rebot.py放置日誌和報告的位置?
- 30. 一個點類的位置
的「替代形式」之一點到圓心的距離不超過它的半徑? – cybye 2013-02-25 07:27:33
檢查此鏈接http://stackoverflow.com/a/839931/67381 – Siddiqui 2013-02-25 07:30:00
已在此處討論: http://stackoverflow.com/questions/481144/equation-for-testing-if-a-point -s-inside-a-circle – chruesel 2013-02-25 07:30:44