我想用OpenGl功能在C++中繪製一個堅實的立方體,但是我想將它繪製在期望的位置,例如glVertex3f(20,5,-35)
。我如何在給定的位置繪製一個立方體?C++中的OpenGl實體立方體
-4
A
回答
2
glTranslatef(x,y,z)。谷歌它,我認爲也有2D版本。但是這會將參考幀轉換爲堆棧。如果需要設置更復雜的轉換,則需要調用glpopmatrix和glpushmatrix。小心拼寫和使用這些。
2
要匹配你的問題,並在OpenGL(兼容性配置文件),你可以使用此代碼來繪製一個立方體:
void drawCube(float x, float y, float z)
{
glBegin(GL_QUADS);
glVertex3f(-1.0f+x, -1.0f+y, -1.0f+z);
glVertex3f(1.0f+x, -1.0f+y, -1.0f+z);
glVertex3f(1.0f+x, 1.0f+y, -1.0f+z);
glVertex3f(-1.0f+x, 1.0f+y, -1.0f+z);
glVertex3f(-1.0f+x, -1.0f+y, -1.0f+z);
glVertex3f(-1.0f+x, -1.0f+y, 1.0f+z);
glVertex3f(-1.0f+x, 1.0f+y, -1.0f+z);
glVertex3f(-1.0f+x, 1.0f+y, 1.0f+z);
glVertex3f(-1.0f+x, -1.0f+y, -1.0f+z);
glVertex3f(-1.0f+x, -1.0f+y, 1.0f+z);
glVertex3f(1.0f+x, -1.0f+y, 1.0f+z);
glVertex3f(1.0f+x, -1.0f+y, -1.0f+z);
glVertex3f(-1.0f+x, -1.0f+y, 1.0f+z);
glVertex3f(1.0f+x, -1.0f+y, 1.0f+z);
glVertex3f(1.0f+x, 1.0f+y, 1.0f+z);
glVertex3f(-1.0f+x, 1.0f+y, 1.0f+z);
glVertex3f(-1.0f+x, -1.0f+y, 1.0f+z);
glVertex3f(1.0f+x, -1.0f+y, 1.0f+z);
glVertex3f(1.0f+x, 1.0f+y, 1.0f+z);
glVertex3f(-1.0f+x, 1.0f+y, 1.0f+z);
glVertex3f(-1.0f+x, 1.0f+y, -1.0f+z);
glVertex3f(-1.0f+x, 1.0f+y, 1.0f+z);
glVertex3f(1.0f+x, 1.0f+y, 1.0f+z);
glVertex3f(1.0f+x, 1.0f+y, -1.0f+z);
glEnd();
}
我不推薦這個功能,使用替代glTranslatef(x, y, z)
解決discribed在另一個答案。喜歡這個功能:
void drawCube(float x, float y, float z)
{
glPushMatrix();
glTranslatef(x, y, z);
glBegin(GL_QUADS);
glVertex3f(-1.0f,-1.0f ,-1.0f);
glVertex3f(1.0f, -1.0f, -1.0f);
glVertex3f(1.0f, 1.0f, -1.0f);
glVertex3f(-1.0f, 1.0f, -1.0f);
glVertex3f(-1.0f, -1.0f, -1.0f);
glVertex3f(-1.0f, -1.0f, 1.0f);
glVertex3f(-1.0f, 1.0f, -1.0f);
glVertex3f(-1.0f, 1.0f, 1.0f);
glVertex3f(-1.0f, -1.0f, -1.0f);
glVertex3f(-1.0f, -1.0f, 1.0f);
glVertex3f(1.0f, -1.0f, 1.0f);
glVertex3f(1.0f, -1.0f, -1.0f);
glVertex3f(-1.0f, -1.0f, 1.0f);
glVertex3f(1.0f, -1.0f, 1.0f);
glVertex3f(1.0f, 1.0f, 1.0f);
glVertex3f(-1.0f, 1.0f, 1.0f);
glVertex3f(-1.0f,-1.0f ,1.0f);
glVertex3f(1.0f, -1.0f, 1.0f);
glVertex3f(1.0f, 1.0f, 1.0f);
glVertex3f(-1.0f, 1.0f, 1.0f);
glVertex3f(-1.0f, 1.0f, -1.0f);
glVertex3f(-1.0f, 1.0f, 1.0f);
glVertex3f(1.0f, 1.0f, 1.0f);
glVertex3f(1.0f, 1.0f, -1.0f);
glEnd();
glPopMatrix();
}
這個功能還不夠完美,但它應該足夠了。快樂的編碼!
+1
我建議儘可能使用過剩。它們具有可以輕鬆製作實心立方體或線立方體的功能。 glutSolidCobe(glDouble size); – pippin1289
相關問題
- 1. C++/OpenGL - 繪製立方體VBO
- 2. C++ OpenGL空立方體可見邊
- 3. 立方體旋轉 - OpenGL
- 4. Opengl透明立方體面
- 5. 在c中實現數據立方體#
- 6. Opengl基本立方體繪圖,但立方體繪製單色
- 7. SSAS:來自多個立方體實例的中央立方體
- 8. 如何在OpenGL中繪製立方體?
- 9. 在OpenGL中渲染一個立方體
- 10. Android OpenGL ES在x,y,z點和立方體的中心旋轉立方體
- 11. 的Android/openGL的立方體GL_TRIANGLE_FAN
- 12. 將立方體轉換爲openGL中的球體表面
- 13. 跟蹤3D立方體位置的OpenGL?
- 14. 渲染立方體儘快? (OpenGL的)
- 15. 使用for循環的OpenGL立方體
- 16. iPhone的OpenGL:構形立方體問題
- 17. 的OpenGL ES:在立方體上
- 18. 立方體上的OpenGL 3D紋理
- 19. OpenGL繪製多個等角立方體
- 20. 不能在立方體內繪製 - OpenGL
- 21. OpenGL Java 3D立方體旋轉
- 22. OPENGL ES 2立方體紋理
- 23. 使用Opengl繪製立方體3D
- 24. OpenGL:渲染大量立方體
- 25. OpenGL - 紋理基本立方體
- 26. 旋轉立方體(使用opengl - iphone)
- 27. 立方體合併事實
- 28. 在opengl中繪製體素(立方體)的最有效方法是什麼?
- 29. 分層窗口中的OpenGL立體聲
- 30. 在OpenGL中創建立方體的方法
1.你有什麼試過的? (告訴我們代碼!) 2.您在哪裏遇到問題? – tzaman
添加到什麼tzaman說:http://mattgemmell.com/2008/12/08/what-have-you-tried/ – Samveen