2009-06-30 2 views
1

http://nehe.gamedev.net에서 튜토리얼을 두 개 시도하고 있습니다. OpenGL 프로그래밍을 배우기 위해 베젤 곡선을 따라 구체를 배치하여 진주 문자열로 표시하고 싶습니다. 그러한 구가 곡선을 따라 어떻게 배치 될 수 있습니까? de Casteljau의 알고리즘을 사용하여 커브를 그리기 때문에 커브에서 XYZ 점을 얻을 수 있습니다.베 지어 곡선을 따라 위치 구체

답변

1

구체가 베 지어 곡선의 전체 길이에 비해 상대적으로 작은 경우 진주 문자열과 비슷한 모양을 얻기 위해 구체를 균등하게 배치 할 수 있습니다. (구가 비교적 큰 경우 구면 오버랩에 대한 걱정을 시작해야합니다. 쉬운 문제가 아니며 OpenGL을 배우는 데는별로 도움이되지 않습니다.)

베 지어 곡선의 매개 변수 값 t0 ~ 1. 10 개 위치 (끝과 팔 내부 점)에서 당신의 베 지어 곡선을 평가하기 위해이 같은 작업을 수행 할 수 있습니다 EvalBezier(t, x, y) 주어진 t에 대한 (x,y) 채 웁니다

for(int i = 0; i <= 9; ++i) 
{ 
    double t = i/9.0; 
    double x, y; 
    EvalBezier(t, x, y); 
    DrawSphere(x, y, radius); 
} 

. 기쁜 결과를 얻으려면 radius을 선택하십시오. radius을 자동으로 선택하려는 경우 i 지점에서 i-1i+1까지의 최소 거리의 절반을 대략적으로 사용하십시오. 이렇게하는 경우 다음 포인트 또는 이전 포인트 (사용자가 가지고있는 것) 만 사용하여 특수하게 엔드 포인트를 처리해야합니다.