在OpenGL中旋转(移动)固定的“曲柄手柄”

时间:2011-10-24 11:47:43

标签: opengl graphics 3d glut glu

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

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

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

除了手柄部分将直接从红色位伸出,而不是伸出。

我只是无法绕过数学计算,以便当我旋转齿轮时,圆柱体移动就像它附着在它上面一样。

任何帮助?

1 个答案:

答案 0 :(得分: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)。