有没有简单的方法来生成用于从GUI绘制形状的OpenGL代码?

时间:2010-01-28 15:08:30

标签: c++ opengl shapes

我很高兴学习在游戏编程的背景下使用OpenGL,并且我已经尝试过创建小形状。我想知道是否有任何资源或应用程序将使用简单的类似绘画的界面生成类似于以下的代码。

glColor3f(1.0, 0.0, 0.0);
glBegin(GL_LINE_STRIP);
glVertex2f(1, 0);
glVertex2f(2, 3);
glVertex2f(4, 5);
glEnd();

我无法想出正确的尺寸来生成形状并想出正确的坐标。

为了澄清,我不是在寻找一个程序,我可以自由地绘制内容并期望它可以创建好的代码来使用。更多的是一种表示和修改所需坐标的视觉方式。

我通过在绘画中绘制一个形状并测量像素相对于单个点的距离来解决这个问题,但它并不那么优雅。

4 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

您将使用的坐标仅取决于您如何定义视口以及您正在操作的分辨率。实际上,您可能会想到在任何您想要的任意坐标系中收集鼠标点击的坐标然后映射这些坐标为opengl坐标。

答案 2 :(得分:0)

您期待什么样的图书馆?

等等 drawSquare(DX,DY);? 画圆(半径);

drawPoly(X1,Y1,X2,Y2 ...);

与glVertex不完全相同,但名称不同吗?抽象在哪里?

答案 3 :(得分:0)

我制作了其中一个...它将采用位图图像,并从中生成几何图形。试着查看三角测量。

第一步是生成形状的边缘,将其从像素转换为顶点和边缘,找到所有边缘像素并在每个像素上放置一个顶点,然后根据顶点之间的距离,或(更好)边缘之间的梯度差异,以剔除顶点并减少网格的多边形数量。

如果你的形状绘制程序使用'矢量图形'而不是像素,即绘制点并在它们之间绘制线条,那么你可以跳过第一步,你只需要进行三角测量。

第二步,一旦你的边和顶点是三角形,为了生成三角形,例如耳剪裁是一种简单的方法。

至于要使用的坐标?这完全取决于你,正如其他人所说,为了保持简单,我只是在像素坐标中工作。

然后,您可以根据需要进行缩放和平移,以转换形状以供使用。