2011-04-08 47 views
3

假設我有一個點(250,125,-20)。 以下改造後,OpenGL:如何獲得轉換後特定點的座標?

glMatrixMode(GL_MODELVIEW); 
glLoadIdentity(); 
glTranslatef(100.0, 50.0, 0.0); 
glRotatef(-25.0, 0.0, 1.0, 0.0);  

我怎樣才能得到該點的當前座標的值? 我需要寫一個子程序來將一個矩陣乘以一個向量嗎? 有沒有內置的解決方案?

回答

7

轉換後,您無法獲取特定頂點(點)的座標,但對於此特定情況,應用轉換/旋轉後可以獲得ModelViewMatrix

glMatrixMode(GL_MODELVIEW); 
glLoadIdentity(); 
glTranslatef(100.0, 50.0, 0.0); 
glRotatef(-25.0, 0.0, 1.0, 0.0); 

glGetFloatv(GL_MODELVIEW_MATRIX , *your_matrix*); 
//print your matrix to check if that is the desired transformation coordinates 

有沒有神奇的磁帶在OpenGL中,你將不得不寫自己的框架e.g:在你的世界級的每一個對象,你持有的頂點,你會發現有關的數據。

+0

謝謝!我在[OpenGL FAQ](http://www.opengl.org/resources/faq/technical/transformations.htm#tran0120)中找到了類似的主題。它給出了相同的答案。 – Roun 2011-04-08 14:41:51

相關問題