수식 4.1.1이
[ ][ ][ ]
형태로 되어 있는데, 곱하기와 등호가 빠졌습니다.
[ ].[ ] = [ ]
형태가 되어야 합니다.
'즉,'이 아니라 '또는'이어야 합니다. 원문은 or 였습니다.
식 4.1.9와 4.1.10은 같은 사실을 다르게 표현한 것이 아니고 그냥 병렬적인 관계입니다.
4.1.11 바로 위의 문장은 "이 때 상수 k는 다음과 같다"로 하는 것이 의미가 더 명확합니다.
void Spline:Build() 중 행렬 연산 코드에 오류가 있습니다.
.....
curveData[index].pos[k] =
(
(-1*u_3 + 3*u_2 - 3*u + 1) *
controlData[i ].pos[k] +
( 3*u_3 - 6*u_2 + 0*u + 4) *
controlData[i+0].pos[k] +
(-3*u_3 + 3*u_2 + 3*u + 1) *
controlData[i+1].pos[k] +
( 1*u_3 + 0*u_2 + 0*u + 0) *
controlData[i+2].pos[k]
) / 6.0f
....
이 부분을
....
curveData[index].pos[k] =
(
(-1*u_3 + 3*u_2 - 3*u + 1) *
controlData[i ].pos[k] +
( 3*u_3 - 6*u_2 + 0*u + 4) *
controlData[i+1].pos[k] +
(-3*u_3 + 3*u_2 + 3*u + 1) *
controlData[i+2].pos[k] +
( 1*u_3 + 0*u_2 + 0*u + 0) *
controlData[i+3].pos[k]
) / 6.0f;
....
이렇게 고쳐야 합니다. controlData[i+?] 부분의 숫자가 하나씩 증가한 것입니다...
'알고리즘' 섹션 첫 문단의 "[그림 4.4.1]에 나온 것 처럼"은 제거되어도 됩니다(원서 오류). 그 문장에 한해서는 그림이 별로 도움이 되지 않는다고 판단한 것 같네요.
이건 번역서 오류. 495 페이지에는 [방정식 4.4.6], 496 페이지에는 [수식 4.4.6]이라는 말이 나오는데, 둘다 동일한 것(페이지 495에 있는 것)을 가리킵니다. 원서에서는 둘다 Equation입니다.
처음 번역할 때에는 수식과 방정식을 구분했었는데(모든 방정식은 수식이지만 모든 수식이 방정식인 것은 아니죠), 수학 전문 서적이 아니니 구분하는 게 더 혼란스러울 것 같아서 그냥 방정식으로 통합했거든요(이 부분에 대해서는 스터디 포럼에서 좀더 이야기가 필요할 것 같네요). 그 과정에서 빠진 것들이 있는 것 같습니다.
수식 4.4.7의 마지막 P2는 P1이어야 합니다. 다음이 맞습니다.
P = P1 + t(P2 - P1)
중간 부분 v1, v2 배정문에 빼기 표시가 빠졌습니다. 정확한 코드는 다음과 같습니다.
v1 = tri1.b - tri1.a;
v2 = tri1.c - tri1.a;
두 정점 a(x0, y0, z0)와 b(x1,y1,z1)에 대해서 a(x0, y0, z0)*t = b(x1,y1,z1)*(1-t)라고 놓는다는 부분이 있는데, 정확한 표현은 다음과 같습니다.
주어진 두 정점 a(x0, y0, z0)와 b(x1,y1,z1)에 대해서, 그 두 점을 지나는 직선 상의 임의의 정점 P(x, y, z)를 a(x0, y0, z0)*t + b(x1,y1,z1)*(1-t)라고 놓는다.
그리고 그 후의 문장에서 '위치'는 'P의 위치'라고 이해하면 되구요...
"(즉 해상도 1까지 맵을 만들고)"를 "(가능한 가장 낮은 해상도까지의 맵을 만들고)"로 고치는 것이 좀 더 정확한(또는 적어도 틀리지 않는) 문장이 됩니다(원서 오류). 의미상 큰 차이는 없구요. 다만 너무 단정적인 문장을 피하자는 의도인 것 같습니다.
it_fits: 레이블 밑에 다음과 같은 코드가 있습니다...
which_who += ix >> (MAP_BIGGEST_SQUARE_SIZE_SHIFT - which_level); which_who += (iy >> (MAP_BIGGEST_SQUARE_SIZE_SHIFT - which_level)) << obj.MapRes;
원서 정오표 페이지에 따르면, 이 코드에서 ix는 (ix - iradius), iy는 (iy - iradius)로 치환해야 한다고 합니다. 격자의 중심이 아니라 격자의 왼쪽 최상단 모서리와 비교를 해야 한다는 뜻입니다...
struct _MATRIX 부분을 보면 float_ 11; 이런 식으로 되어 있는데, float 한칸 뛰고 _11; 식으로 되어야 합니다. 밑줄이 숫자쪽으로 붙어야 합니다..
typedef struct _MATRIX
{
float _11;
float _12;
float _13;
float _14;
float _21;
float _22;
float _23;
float _24;
float _31;
float _32;
float _33;
float _34;
float _41;
float _42;
float _43;
float _44;
}MATRIX;
중간에 T.Vert[i] = (T.Vert[i] Trans)/Scale;라는 코드가 나오는데, Trans 앞에 - 기호가 빠졌습니다. 정확한 코드는 다음과 같습니다.
T.Vert[i] = (T.Vert[i] - Trans)/Scale;
중간에 (k-1)*L/2라는 식이 나오는데, (k-1)*L/4가 되어야 합니다.
그림 4.11.5의 실선 사각형과 점선 사각형 테두리 부분에 불필요한 실선들이 들어가 있었습니다. 원서 정오표 페이지에 새로 나온 그림은 다음과 같습니다.
코드 중간의 srand( x + (x * y))가 잘못 되었습니다. 문맥상 무조건 0이 되니 의미가 없습니다. srand(y)가 맞습니다.
| 제일 위로 |
| 최종 수정 일시: 09월 24일(2005년) 01:17 AM 편집 | 정보 | 차이 | 비슷한 페이지 DebugInfo |
| 유용한 페이지들: 분류 분류 | 자유로운 연습장 SandBox | 무작위 페이지들 RandomPages | 인기있는 페이지들 MostPopular |