2012-02-15 63 views
-3

我想創建一個800X600的窗口,它只顯示一些圓圈並且能夠每隔一毫秒處理一下窗體的像素並將結果顯示給用戶。用戶和表單之間沒有交互(沒有點擊,沒有dblclick,...)它只是顯示了一些顏色的線和不同像素顏色的線(每條線可能有不同的像素顏色) 我也希望能夠更改協調系統,我的意思是將其從左上角改爲窗口的中心。任何人都可以幫我做一些示例代碼嗎?鏈接?教程?在linux中用opengl進行像素操作的簡單形式

回答

1

OpenGL沒有內置循環函數,但它確實具有線函數,並且可以使用多邊形來模擬一個圓。要繪製線條,可以這樣做:

glBegin (GL_LINES); 
// First line segment 
glVertex2f (x0, y0); 
glVertex2f (x1, y1); 
// Second line segment 
glVertex2f (x2, y2); 
glVertex2f (x3, y3); 
glEnd(); 

要繪製一個圓,您可以編寫一個繪製三角形風扇的循環。喜歡的東西:

glBegin (GL_TRIANGLE_FAN); 
// Center point 
glVertex2f (cx, cy); 
for (segment = 0; segment < maxSegments; segment++) 
{ 
    double angle = delta * segment; 
    double x = cx + cos (angle) * radius; 
    double y = cy + sin (angle) * radius; 
    glVertex2f (x, y); 
} 
glEnd(); 

在這種情況下,增量爲2 * pi/maxSegments,並且maxSegments是你在你的圈子近似想要的段數。