2013-03-13 1 views
2

사원 수는 형태의 숫자입니다 사원 수? 좋아요,하지만 ...C + OpenGL은

  1. 어떻게이 숫자를 C 언어로 해석합니까?

  2. 예를 들어 큐브를 회전하고 싶다면 쿼터니언을 곱하면 어떻게됩니까? 벡터?

+0

quarternion을 나타 내기 위해서는 멤버가 4 개인 구조체 또는 길이 4 배열이 필요합니다. 귀하의 질문의 나머지 부분에 관해서는, 그것은 본질적으로 수학이고, 그래서 주제에 대한 것입니다 ... –

+0

아마도 중복 http://stackoverflow.com/questions/508370/quaternion-libraries-in-c-c? – rhughes

답변

6

, 당신이 "어떻게 표현합니까"가 아닌 "해석"을 의미 생각합니다.

가장 간단한 방법은 struct 사용하는 것입니다

typedef struct quaternion_t { 
    double x,y,z,w; 
} quaternion_t; 

참고하는 일반적인 연습, 위의 사용, X, Y, Z 및 W 구성 요소 이름 (하지만 당신의 이름을 사용할 수도있다 당신이 어느 것을 알고있는 한 완벽하게 받아 들일 수 있습니다.) 구성 요소의 이중 또는 단 정밀도 부동 소수점 사용은 사용자의 필요에 따라 달라집니다 : 정확도 또는 공간.

간단한 작업을 구현 한 후 쉽게 :

두 번째 질문에 대한
void conjugate(quaternion_t *q){ 
    q->x = -q->x; 
    q->y = -q->y; 
    q->z = -q->z; 
} 

double product(quaternion_t *q1, quaternion_t *q2){ 
    return q1->x * q2->x + q1->y * q2->y + q1->z * q2->z + q1->w * q2->w; 
} 

double norm(quaternion_t *q){ 
    double p = product(q,q); 
    return sqrt(p); 
} 

// etc 

, 나는 당신이 그 주제에 대한 좋은 튜토리얼을 찾아하는 것이 좋습니다. 한편, 위키 피 디아 페이지 :

은 좋은 소개를 제공합니다.

+1

크기가 문제가 아니라면 두 배로 갈 것입니다. –

+0

대단히 감사합니다 .-) –

+0

아무런 문제가 없습니다. 답변을 이미 알고 있는지 물어 보는 것은 무엇입니까? – didierc