我想在opengl
中繪製一個立方體,這將允許我在按下它的面時更改視圖(如在Unity3D
,Autocad
),這裏是兩個軟件的一些圖片:在窗口opengl的右上角繪製一個立方體(並使其停留在那裏)
這是我的嘗試:
void GLWidget::drawViewCube(float x, float y, float z, float t, float posX, float posY){
glBegin(GL_QUADS);
//std::cout << " x : " << x << ", y : " << y << ", z : " << z;
glVertex3f(x+posX+t,y+posY-t,z+t);
glVertex3f(x+posX-t,y+posY-t,z+t);
glVertex3f(x+posX-t,y+posY+t,z+t);
glVertex3f(x+posX+t,y+posY+t,z+t);
glVertex3f(x+posX+t,y+posY+t,z+t);
.
.
.
// Just drawing a cube
}
這是我怎樣,我稱之爲:
drawViewCube(-depX,-depY,-zoom-590, 0.5, -0.03 * height(), 0.03 * width());
所以我畫它像一個正常的立方體,但我做它遵循相機depX
和depY
(這是的deplacements我相機),並與zoom
也。與此相關立方體是跟隨我的相機,並始終停留在相同的位置(這是我們想要的,對吧?)我也試圖讓它留在窗口內,當我們延長窗口height()
和width()
,但這是沒有真正的工作,當我擴大窗口它不停留在某個地方(右上),但這不是最大的問題,真正的問題是當我旋轉我的相機...
我認爲我應該嘗試使用我的視圖的矩陣,所以我可以讓它留在同一個地方,但我不擅長opengl ...所以如果任何人有任何關於這件事的想法,請讓我知道。 PS:我現在只想繪製立方體,我會考慮如何在它上面按下以後再改變視圖。
它可能更容易讓它完全忽略相機,並分別應用旋轉 – 2014-08-27 08:34:47
是的,但正如我所說,我不是很擅長使用視矩陣,如果你能解釋我該怎麼做,它會有幫助 – 2014-08-27 08:37:01