2
A
回答
8
查找包含所有三個點的平面P.在這個平面上,這些點確定了一個三角形。
找到這個三角形周圍的圓。讓C表示這個圓圈的中心 。
查找行垂直於P和在C.
穿越它在此行中,發現這些2個點與來自 圓的期望的距離。
我忽略了退化情況。
2
有很多方法可以將其正式化。下面是他們中的一個(基本相同,阿里建議,但更多的數學):你想找到點
(a)由P1,P2,P3等距,與
(B)的距離爲準確R.
首先,找到外接圓按照http://en.wikipedia.org/wiki/Circumscribed_circle的中心(見關於「一個三角形的嵌在d維外接圓」的部分):
p0 = cross(
dot(p21, p21) * p31 - dot(p31, p31) * p21,
n
)/2/dot(n, n) + p1,
p21=p2-p1
用,p31=p3-p1
,n=cross(p21,p31)
。
從項目的點(一個)位於上穿過這一點上,和垂直於包含P1,P2,P3的平面,所以它的方程是
p(t) = p0 + n * t
替代此成
一個線dist(p1, p)^2 = dot(p - p1, p - p1) = R^2
得到二次方程
dot(n, n) * t^2 - 2*dot(n, p0-p1) * t + dot(p0-p1, p0-p1) = R^2
其實,n
和(p0-p1)
是正交的,所以在左側的第二加數爲0,並且
t1 = sqrt((R^2 - dot(p0-p1, p0-p1))/ dot(n, n)),
t2 = -sqrt((R^2 - dot(p0-p1, p0-p1))/ dot(n, n))
(注意如何p1
在p0
抵消)。用p(t)
代替這些來得到答案。
相關問題
- 1. 如何在給定中心點和半徑大小時繪製一個球體?
- 2. 如何在Matlab中繪製球體時定義半徑?
- 3. iOS-與圓心和半徑
- 4. 半徑和從OpenLayer一個Circle 3
- 5. 如何在Matlab中繪製具有不同半徑和不同原點的點周圍的3D球體
- 6. Java中的邊界框算法只有中心點和半徑
- 7. JavaFX:如何找到沿圓的特定點的x,y,只給出半徑和中心x,y的位置?
- 8. 如何爲邊界球體的給定半徑設置gluPerspective()的zNear和zFar值?
- 9. 如何通過兩點和半徑大小來計算橢圓的中心
- 10. 如何計算具有給定中心,角度和半徑的點?
- 11. 如何計算給定中心的終點加上半徑和角度?
- 12. c#我如何找到3點的中心?
- 13. 找到具有半徑和角度的點
- 14. 在Javascript中找到距離半圓中心n%的點?
- 15. 從中心和半徑創建一個SqlGeography多邊形圈
- 16. 如何將點投影到球體上
- 17. 如何找到經度和緯度在半徑內?
- 18. 如何在子路徑上找到Asp.net核心站點
- 19. 從已知XYZ角度,半徑和原點的點尋找3D座標?
- 20. Swift:在MKMapView中繪製半球體
- 21. 找到一個圓的半徑,直徑,面積和圓周
- 22. OpenGL - 渲染具有固定像素半徑的球體
- 23. 非零半徑球體之間的碰撞檢測
- 24. 如何將角點半徑應用到UIView中沒有問題?
- 25. 2D點到球體上的
- 26. 如何從中心找到旋轉矩形的頂點?
- 27. 找出加蓋矩形物體的方向,長度和半徑
- 28. 如何在Unity 5中製作球體半形狀
- 29. SceneKit:讓子球體在半透明父球體內可見?
- 30. 從NE SW區域查找圓半徑