2016-08-09 12 views
0

원과 무한 원의 교차점 찾기. (모두 3D에서) • 원은 중심, 평면 및 반경으로 정의됩니다. • 원통은 축과 반경으로 정의됩니다.3D 공간에서 원과 무한 원의 교차점 찾기

어떻게이 두 가지의 교차점을 얻을 수 있습니까?

+0

관련이있을 수 있습니다. https://en.wikipedia.org/wiki/Sphere%E2%80%93cylinder_intersection –

+0

하지만 커팅 플레인 (원을 원으로 변환 함)과 함께 사용하는 방법은 무엇입니까? ?? – AmolN

+0

원에 대한 수식을 사용하고 유사한 분석을 수행합니다. 원점에 중심을두고 xy 평면에서 원을 수정하고 원통을 임의로 만드는 것이 가장 쉽습니다. –

답변

0

WLOG 법선 상에 실린더의 반경 플러스 원 반경의 돌기의 합보다 작다.

그때 원의 방정식은 파라미터 C 길이 R의 중심점과 U, 원형 평면 V 개의 직교 벡터이다

P = C + U cos t + V sin t 

이다.

대체물 cos t = (1 - u²)/(1 + u²), sin t = 2u/(1 + u²)으로 합리화 할 수 있습니다. 이런 식 결합

, 4 차 하나

(Cx (1 + u²) + Ux (1 - u²) + Vx 2u)² + (Cy (1 + u²) + Uy (1 - u²) + Vy 2u)² = (1 + u²)² 

. 계수의 특별한 단순화는 없다.

숫자 또는 닫힌 수식을 사용하여 해결할 수 있습니다. 최대 네 가지 솔루션이있을 수 있습니다.


는 난이 원 둘레와 축 실린더를 팽함으로써 얻어진 직선 팽창에 의해 형성된 원환의 교점을 찾는 엄격 같다고 생각한다. 이것은 광선 추적 문헌에서 잘 설명되어 있습니다.

2D에서 원/타원 교차 문제로도 사용할 수 있습니다.

+0

@AmolN : 당신이 이해하지 못하는 것은 무엇입니까? 왜이 문제를 해결해야합니까? –

+0

@AmolN : 이것들은 가장 간단합니다. –

+0

@AmolN : 알 수없는 것은 u이고 계수는 해답에 설명되어 있습니다. –

0

원통의 기점을 A0, 단위 축 방향 벡터를 AD, 반경 AR로합시다. 원 중심은 B0, 원 평면 단위 법선은 BN, 반경 BR입니다.

원은 B0에서 원통까지의 거리 인 경우 원통과 교차합니다. 축은 실린더 식 X² + Y² = 1을 (그렇지 않다면, 너무 이동, 회전 및 스케일링을 할 수있다)를 갖는다 축

Dist <= AR + BR * Abs(Cos(AD, BN)). 

Cos(AD, BN) = DotProduct(AD, BN) 
Distance(B0, cyl.axis) = Abs(VectorProduct(AD, B0-A0))