2010-04-07 25 views
2

我想確定一個點P(x,y,z)是否在由其中心C(cx,cy,cz),半徑R,和垂直於所述圓位於N.確定三維點是否在二維圓內

平面我知道的點P躺在3D空間中的2D圓被定義爲:

P = R * cos(t)的ü + ř罪(T)*(ñ X Ù)+ C

其中U是從圓心到圓上任意點的單位向量。但是,如果問題Q,我怎麼知道Q在圈內還是圈內?什麼是合適的參數t可供選擇?我可以比較點Q,看看它們是否在圓圈內?

謝謝。

+0

小心澄清你的符號?這是什麼**噪音**?看起來它可能是矢量的大小,但它鼓勵其他人在你的問題被清楚地呈現時提供有用的答案。 – 2010-04-07 15:57:30

+0

我試圖大膽他們,但他們不會大膽....? ** U **是一個大膽的向量,表示一個向量。 ** N **相同​​。編輯:我通過將它們從「代碼」部分中取出來加粗了字母 – Myx 2010-04-07 15:58:45

+0

您嘗試查找有關3d鼠標拾取的信息嗎? – HyperCas 2010-04-07 16:00:26

回答

10

項目P到包含該圓的平面上,稱爲P'。 P當且僅當| P - P'|在圓中= 0和| P' - C | < R.

+1

如果我希望在我的支票中包含該點的邊界,是否檢查| P-C | <= R且| P-P'| = 0? – Myx 2010-04-07 16:13:58

+0

http://en.wikipedia.org/wiki/3D_projection – HyperCas 2010-04-07 16:16:06

+0

假設您所有的座標都是浮點數,這意味着您在處理「| P - P'| = 0」時應該小心。它幾乎不會出現到零,所以你可以做一些類似「| P - P'| MatrixFrog 2010-04-07 16:40:07

3

我應該這樣做打破它分成兩個部分:

  1. 找出如果點在同一平面上的圓(即看是否該向量的點積從去中心到點,法線爲零)

  2. 找出它是否在包含圓的球體內(即,看中心到點的距離是否小於半徑)。