2010-04-07 4 views
2

점 P (x, y, z)가 중심 C (cx, cy, cz), 반경 R로 정의 된 3D 공간에서 2D 원 안에 있는지 확인하고 싶습니다. 나는 3D 공간에서 2D 원에 누워 점 P에 의해 정의되어 있는지 알고있는 원 N.3D 점이 2D 원 안에 있는지 확인합니다.

에 놓여 평면에 정상 :

P = R * COS (t) U + 죄 R (t) * (N X U) + C

여기서 U은 원의 중심에서 원상의 임의의 점까지의 단위 벡터입니다. 그러나 Q 점이 주어지면 Q가 원 위에 있거나 내부에 있는지 어떻게 알 수 있습니까? 선택할 수있는 적절한 매개 변수 t은 무엇입니까? 그리고 Q 좌표를 어느 좌표로 비교해 그들이 원 안에 있는지 알아 봅니까?

감사합니다.

+0

표기법을 명확히하기 위해주의해야합니까? ** 소음 **에 대해 무엇입니까? 그것은 벡터의 크기 일 수있는 것처럼 보이지만 질문을 명확하게 제시 할 때 다른 사람들이 유용한 답변을 제공하도록 장려합니다. –

+0

나는 그들을 대담하게하려고 노력했다. 그러나 그들은 과감하지 않을 것이다. ...? ** U **는 대담한 벡터로 벡터를 나타냅니다. ** N **과 동일합니다. 편집 : 나는 "코드"섹션에서 그들을 빼내 문자를 굵은 글씨 – Myx

+0

당신은 3D 마우스 따기에 대한 정보를 찾아 보았습니까? – HyperCas

답변

10

원을 포함하는 평면에 P를 투영하려면 P '를 호출하십시오. P는 | P - P '| = 0 및 | P'-C | < R.

+1

그리고 수표에 경계의 경계를 포함 시키려면 P-C | <= R 및 P-P '| = 0을 검사합니까? – Myx

+0

http://en.wikipedia.org/wiki/3D_projection – HyperCas

+0

아마 모든 좌표는 부동 소수점 숫자입니다. 즉, "| P - P '| = 0"일을 할 때주의해야합니다. 정확히 0이되는 일은 거의 없으므로 "| P - P '| MatrixFrog

3

나는 두 부분으로 침입하여이 작업을 수행 할 것 :. 벡터의 내적가에서가는 경우 포인트가 원으로 동일한 평면에있는 경우

  1. 이 찾아 (즉, 참조 점의 중심과 법선이 제로 인 경우)

  2. 원이 들어있는 구의 내부에 있는지 알아보십시오 (즉, 중심에서 점까지의 거리가 반경보다 작은 지 확인).