2011-10-24 2 views
0

좋아요, 필자는 OpenGL에서 그렸던 톱니 바퀴가 있습니다. 나는 손잡이를 모델링하기로되어있는 실린더의 한면에 부착 된 실린더를 가지고있다. (기본적으로, 손으로 만든 드릴의 시뮬레이션을 만든다.) 이제 내가 톱니 바퀴를 회전시킬 때 실린더가 부착 된 것처럼 움직 이길 원합니다. 따라서 톱니 바퀴의 중심 구멍은 원점에 있습니다. 내가이 그림에서와 같이 작업 할OpenGL에서 고정 된 "크랭크 핸들"회전 (이동)

즉 : 손잡이 부분을 제외하고

http://www.uktoolcentre.co.uk/ProductImages/25133/BIG/BIG/25133.jpg

대신의 확장에, 바로 레드 비트의 바깥으로 튀어 나와됩니다.

나는 그저 톱니 바퀴를 회전시킬 때 실린더가 움직이는 것처럼 수학적으로 주위를 두들겨 맞출 수 없다.

어떤 도움이 필요합니까?

답변

1

회전이 적용된 후 "빨간 비트"의 바깥 쪽 원 근처 점으로 변환이 완료되었는지 확인해야합니다.

const float main_cog_radius = 1.f; 
const float crank_radius = 0.08f; 
glPushMatrix(); 
glRotatef(main_cog_angle, 0.f, 0.f, 1.f); 
draw_main_cog(main_cog_radius); 
glTranslatef(main_cog_radius - crank_radius, 0.f, 0.f); 
draw_crank(crank_radius); 
glPopMatrix(); 

이 메인 톱니 바퀴의 중심을 축 가정은 (0,0 : (난 당신의 코드에 적용 확실하지 않다) "고전"즉각적인는 OpenGL에서

, 그것은 뭔가를 할 것입니다 ,1).

+0

답장을 보내 주셔서 감사합니다. 지금 시도해주세요. - 그리고 예, 인스턴트 모드를 사용하여 임 (일을하는 것처럼 "오래된"방법, 즉 상태 머신, 파이프 라인이 아님) –

+0

감사합니다. –