我想创建一个800X600窗口,只显示一些圆圈,并且能够每隔几毫秒操纵一次表格的像素,并向用户显示结果。用户和表单之间没有交互(没有点击,没有dblclick,...)它只显示一些颜色的圆圈和不同像素颜色的线条(每条线条可能有不同的像素颜色) 我也希望能够改变协调系统,我的意思是将其从左上角改为窗口中心。有人可以帮我用一些示例代码吗?链接?教程?
答案 0 :(得分: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 ();
在这种情况下,delta为2 * pi / maxSegments
,maxSegments是您在圆近似中所需的细分数。