unsigned int i;
for ( i = 0; i < mCount-1; ++i )
{
// set up step variables
const float h = 0.1f; // u : 0~1
const float h2 = 0.01f;
const float h3 = 0.001f;
IvVector3 A = 2.0f*mPositions[i]
- 2.0f*mPositions[i+1]
+ mInTangents[i]
+ mOutTangents[i];
IvVector3 B = -3.0f*mPositions[i]
+ 3.0f*mPositions[i+1]
- 2.0f*mInTangents[i]
- mOutTangents[i];
// u *
IvVector3 dP1 = h3*A + h2*B + h*mInTangents[i]; // u = 0.1
//h3*A + h2*B 이것과 다음 것의 차이 만큼만 더해준다
//다음 곡선으로 이동 하기 위한 인자
IvVector3 dP3 = 6.0f * h3*A;
IvVector3 dP2 = dP3 + 2.0f*h2*B;
// 이것이 다음에 더해질 간격이다 6.0f*h3*A + 2.0f*h2*B
// output first point
IvVector3 P = mPositions[i]; // 첫번째 M 의 마지막 성분인 P0을 여기서 더해준다
glVertex3f( P.x, P.y, P.z );
// do forward differencing to next points
for ( u_int j = 1; j <= 11; ++j ) //각 간격당 10개의 성분으로 나누어 표시
{
P += dP1;
glVertex3f( P.x, P.y, P.z );
dP1 += dP2;
dP2 += dP3;
}
}
'수학 (Mathematics) > 3D수학' 카테고리의 다른 글
로컬좌표와 월드 좌표 (0) | 2012.11.02 |
---|---|
라디오시티 (0) | 2012.11.02 |
Z-Fighting (0) | 2012.11.02 |
직교투영 확대 축소 (0) | 2012.11.02 |
폴리곤중간의 텍스처 좌표 구하기 (0) | 2012.11.02 |