2012-11-04 8 views
2

Computer Graphics Through OpenGL by Sumanta Guha을 사용하여 컴퓨터 그래픽을 가르치고 있습니다. 나는 운동 중 하나에 관해서는 작은 방해물을 치는 것 같다.환상의 헬릭스 렌더링

그것은 n 개의 코일을 가진 토로 이달 나선을 "돋보이게"요청합니다. 이것은 3D 파이프를 n 번 순환하는 토 로이드 나선 모양으로 렌더링하는 것을 의미합니다. 토 로이드 나선 곡선의 파라 메트릭 방정식을 고안 할 수 있었지만 3D 파이프의 파라 메트릭 방정식을 풀기위한 수학 문제가 있습니다.

토러스는 감싸 내경 (이하 "도넛"의 중심에있는 구멍) R 및 외측 반경 (r)을 갖는 것 : 다음

도넛 나선 곡선의 파라 메트릭 식이다.

x = (R + r*cos(n*t)) * cos(t) 
y = (R + r*cos(n*t)) * sin(t) 
z = r*sin(n*t) 

분명 우리가 다른 매개 변수와 실제 파이프 다른 반경을 필요로한다 [-PI, PI]의 범위에, 파라미터 t이 주어.

이 문제를 해결하는 방법에 대한 아이디어가 있으십니까? 나는 그것에 대해 내 머리를 두드리고 할 수 없었습니다.

감사합니다.

답변

1

헬릭스의 각 점 p(t)에 대해 정점의 원을 만들어야합니다. d의 작은 값인 p(t+d)을 찾아 곡선에 대한 접선을 계산합니다. p(t)->p(t+d) 벡터를 표준화합니다. 이것은 파이프의 정점이 놓이는 평면의 법선입니다.

p(t)의 벡터를이 평면에 투영합니다. 원의 첫 번째 꼭지점은이 투영에 있어야하며 나머지는 평면 법선을 중심으로 회전하면서 진행됩니다. 이렇게하면 각 원에 대해 일관된 방향이 제공되므로 꼭짓점을 삼각형으로 결합 할 수 있습니다.