우리는 그 중심 위치 C
{Cx, Cy, Cz}
반경 R
H
및 높이에 의해 한정되는 공간 3d
라인의 시작점과 끝점에 의해 한정된 세그먼트 (A
{Ax, Ay, Az}
, B
{Bx, By, Bz}
) 및 실린더를 말한다. 교차로의 사실을 얻는 방법과 교차로가 어디에서 일어 났는지?실린더와 라인 세그먼트 교차를 감지하는 방법은 무엇입니까?
1
A
답변
1
Try this. 승리를위한 Google - 답변도 여기에 있습니다. 이것은 심지어 당신이 사용할 수있는 더 많은 정보에 대한 소스 코드와 링크를 가지고 있습니다. 약간의 검색만으로도 자신을 가질 수있었습니다.
이것은 @ DuckQueen의 답을 기반으로합니다 - 교차점이있는 경우 교차점을 투영하여 원통 높이 내에 있는지 확인합니다.
1
x = (y-a2)/b2 = (z-a3)/b3을 행의 방정식이라고합시다.
실린더에 대한 방정식을 (x-c1)^2 + (y-c2)^2 = d^2라고하자.
x를 회선 방정식에서 실린더 방정식으로 대체하십시오.
이차 방정식을 사용하여 y를 풀 수 있습니다. 솔루션은 0 개 (실린더와 선이 교차하지 않음), 1 개 솔루션 또는 2 개 솔루션을 가질 수 있습니다.
x 및 z 좌표를 얻기 위해 y 값을 회선 방정식으로 대체하십시오. 두 지점에서 라인 방정식을 취득하기위한
볼 : http://www.nabla.hr/Z_CGLinesAndPlanesIn3DSpace-A.htm용액 I 무한 높이 실린더 작동을 제공 하였다. 높이 H의 원통으로 제한하려면 : 점이 높이 내에 있으면 (즉, z가 한계 내에 있음) 교차점을 찾고 점을 찾습니다.
실린 더 높이를 어디에서 정의 할 수 있습니까? 또한 제공 한 포인트'A','B'를 사용하십시오. 저자가 제공 한 'Ax', By, Cz 등의 표기법을 사용하십시오. – DuckQueen
@DuckQueen 제공된 대답은 선과 원통 사이의 교차점을 찾습니다. 내가 OP에 남긴 선과 원통의 다른 표현 사이를 변환하는 것은 사소한 일이다. 구체적인 질문이 있으면 알려주십시오. – ElKamina
실린 더 방정식에서 실린 더 높이는 어디에 있습니까? 방정식이 없습니다. 모든 포인트와 값의 배열입니다. 문제가 아닌 일반적인 질문에 대한 답변을 제공해주십시오. 공식 및 회선 방정식을 사용하는 경우 주어진 데이터에서 tham을 얻는 방법을 제공하십시오 (실린 더의 벽으로 사용). – myWallJSON