2011-10-24 51 views
0

好吧,我有一個我在opengl中繪製的齒輪(齒輪)。我在它的一側附加了一個圓柱體,它應該模擬一個手柄(基本上,我正在模擬一個手搖鑽機)。現在,當我旋轉齒輪(工作)時,我希望氣缸移動,就好像它連接到它。順便提一下,齒輪的中心孔位於原點。在OpenGL中旋轉(移動)一個固定的「曲柄手柄」

即我希望它在這個PIC一樣工作:

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

除了手柄部分將堅持直出紅色位的,而不是在一個擴展。

我只是不能讓我的頭繞着數學,以便當我旋轉齒輪,氣缸移動,就好像它連接到它。

任何幫助?

回答

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(); 

這通過主COG的中心呈軸線(0,0 ,1)。

+0

感謝您的快速回復,現在就試試吧! - 是的,即時通訊使用即時模式,我認爲(因爲即時消息處理「舊」的方式,即狀態機,而不是管道) –

+0

謝謝,這很好! –