저는 본질적으로 b- 스플라인 곡선 그리기 연습 인 OpenGL 프로젝트에서 작업 해 왔습니다. 내 프로그램은 오류를 반환하지 만 커브는 표시되지 않습니다.OpenGL에서 B- 스플라인 곡선 렌더링
'좌표'라는 이름의 길이 (13)의 제어 포인트의 배열을 지정해, (자신이 모든 화면에 볼 수 있습니다 제어 점)이 내 코드입니다 :
"NofU는"혼합 기능을 나타냅니다glBegin(GL_LINE_STRIP);
float x=0;
float y=0;
float z=0;
for (double u = 3; u <= 14; u+=0.1){
for (int i = 1; i <=13; i++){
x += NofU(u,i)*coords[i].x;
y += NofU(u,i)*coords[i].y;
z += NofU(u,i)*coords[i].z;
}//for
}//for
glVertex3f(x, y, z);
glEnd();
: 나는 인쇄 문을 시도 할 때
double NofU(double u, int i){
if (u < i)
return 0;
else if (u < i+1)
return (1/6)*pow(u,3);
else if (u < i+2)
return (1/6)*((-3)*pow(u,3)+3*pow(u,2)+3*u+1);
else if (u < i+3)
return (1/6)*(3*pow(u,3)-6*pow(u,2)+4);
else if (u < i+4)
return (1/6)*pow((1-u),3);
else
return 0;
}//NofU
, 나는 좌표 값 중 하나를 미친 듯이 크고 작은 끝낼, 아니면 그냥 0
그래, 그게 내 바보 같았다. 나는 정점을 루프 내부로 옮겼고 이제는 작동합니다. 지금 다른 문제가 있지만 다른 질문을 기다려야합니다. 답변 해주셔서 감사합니다. – JMcMinn