0

好的,我有一个我在opengl中绘制的齿轮(齿轮)。我在它的一侧连接了一个圆柱体,它应该模拟一个手柄(基本上,我正在模拟一个手摇钻头)。现在,当我旋转齿轮(工作)时,我希望圆柱体像连接到它一样移动。顺便说一下,齿轮的中心孔位于原点。

即我希望它像这张照片一样工作:

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

除了手柄部分将直接从红色钻头中伸出,而不是在延伸部分上。

我只是无法通过数学来做到这一点,这样当我旋转齿轮时,圆柱体就会移动,就好像它附着在它上面一样。

有什么帮助吗?

4

1 回答 1

1

您只需要确保在应用旋转后完成平移到“红色位”外圆附近的点。

在“经典”即时 OpenGL(我不确定它是否适用于您的代码)中,它将类似于:

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,1)。

于 2011-10-24T11:52:37.760 回答