2012-07-09 48 views
0

我有一個2D明星,我不知道如何將它圍繞中心旋轉,而且我也不知道如何使用鍵盤按鍵。另外我怎樣才能讓我的物體變大或變小一定比例(因爲當我試圖通過改變像素來實現時,星星出現問題)。在opengl中旋轉一個明星(2D)

這是我的代碼:

#include <GL/glut.h> 
#include <GL/gl.h> 
#include <GL/freeglut.h> 

void init (void) 
{ 
    glClearColor(0.0,0.0,0.0,00); 
    glMatrixMode(GL_PROJECTION); 
    gluOrtho2D(0.0,200.0,0.0,200.0); 

} 
void LineSegment(void) 
{ 
    glClear(GL_COLOR_BUFFER_BIT); 
    glColor3f(1.0,1.0,1.0); 
    glBegin(GL_LINE_LOOP); 
    glVertex2i(20,120); 
    glVertex2i(180,120); 
    glVertex2i(45,20); 
    glVertex2i(100,190); 
    glVertex2i(155,20); 
    glEnd(); 
    glFlush(); 
} 
int main(int argc,char** argv) 
{ 
    glutInit(&argc,argv); 
    glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); 
    glutInitWindowPosition(50,100); 
    glutCreateWindow("STAR"); 
    init(); 
    glutDisplayFunc(LineSegment); 
    glutMainLoop(); 
    return 0; 
} 
+0

對於旋轉,有幾種方法可以做到這一點 - 旋轉對象的頂點或旋轉,它的座標空間存在於。你知道任何有助於旋轉的OpenGL例程嗎? – user1118321 2012-07-10 04:23:27

+0

沒有即時通訊新的OpenGL,我想旋轉它與一個關鍵的圓周圍,並與另一個關鍵使STAR更大或更小 – 2012-07-10 07:41:22

回答

2

如果旋轉與glRotatef恆星繞Z軸()函數,它應該不停地旋轉它的中心。我會創建一個全局變量來測量旋轉,並使用您想要使用的任何鍵來增加該值。 glRotatef(angle,0.0f,0.0f,1.0f);應該做的伎倆。 退房訥河教程,他們是特別有用爲了這個,我發現: http://nehe.gamedev.net/

退房1-10之間的必要的,有關於鍵盤控制和旋轉和這樣一些。

此外,爲了擴展它,你也可以嘗試glScalef(),並做數學增加它作爲一個百分比不會太難。 。

希望一些認爲是有用的,我很新的這一切>>

+0

謝謝Talen但即時新的OpenGL和我不知道如何使用它們在我的代碼 – 2012-07-10 07:43:26

+0

哈哈沒有做你的作業太多了:P, 我建議看看這兩頁: http://www.opengl.org/sdk/docs/man/xhtml/glRotate.xml http:// www.opengl.org/sdk/docs/man/xhtml/glScale.xml 這些頁面解釋了函數及其參數,對這些函數的理解是非常寶貴的。此外,在NeHe網站上,課程將向您展示如何在不影響任何其他模型的情況下使用它們。我強烈推薦OpenGL的這些課程,他們非常聰明,非常簡單,可以遵循:) – 2012-07-10 07:51:20