2012-03-14 2 views
1

두 개의 등면이 있습니다 (두개골과 스킨). 두개골 등각 표면에 주어진 점 A, "double * pos = pickerCell-> GetPickNormal()"을 사용하여 점 A에서 법선을 계산했습니다. 내가 pos를 인쇄 할 때, 이것은 내가 가지고있는 것입니다 : -6.2367, 1.98263, -0.9823 누군가이 3 가지 값의 의미를 설명 할 수 있습니까?vtk IntersectWithLine() 함수를 노말을 라인으로 사용

점 A의이 법선과 피부 등면이 교차하는 점을 찾고 싶습니다.

이렇게하려면 IntersectWithLine() 함수를 사용할 수 있습니까? 그렇다면, 내 경우의 라인이 정상이 될 것입니까? 정상의 시작과 끝 지점은 무엇입니까?

더 좋은 방법이 있습니까?

답변

0

발견 했으므로 교차 할 선을 두 점으로 정의해야합니다. 일반적으로 수행되는 작업은 사용자가 선택한 점 (normal, v가 계산 된 동일한 점)에서 시작하여 두 점, A = P + v delta 및 B = P - v delta를 계산하는 것입니다. 컨텍스트를 사용하여 델타를 설정합니다 (모델이 단위 큐브에있는 경우 델타는 .01과 같을 수 있습니다. 여기서 모델의 크기가 1000이고 델타가 1 일 수 있습니다.).

또한 정상적으로 셀 선택기가 반환하는 값이 정규화되지 않은 이유는 확실하지 않지만 정규화하면 표면의 정상 값이라고 가정합니다. 혼란을 피하기 위해 'pos'가 아닌 다른 것이라고 부릅니다 (방향이 아니라 위치 임).