c++ - 用颜色填充随机区域

标签 c++ opengl

我需要用颜色填充任何随机区域。我有几个坐标点(点数> 2)。 (我应该通过鼠标点击 -> 随机点来获得分数)。所以为了测试颜色填充,我使用了一些随机点

glBegin(GL_POLYGON);
    glVertex2f(200.0 / WIDTH, 300.0 / HEIGHT);
    glVertex2f(300.0 / WIDTH, 100.0 / HEIGHT);
    glVertex2f(500.0 / WIDTH, 400.0 / HEIGHT);
    glVertex2f(400.0 / WIDTH, 200.0 / HEIGHT);
glEnd();

但结果并不像预期的那样 enter image description here

我知道点应该按某种特定顺序排列 - 但如何将其应用于随机点?

最佳答案

您需要对所有顶点进行排序,以便按照顺序绘制凸多边形。这其实是计算几何的题目:convex hull .

一个简单的算法是,您首先根据 x 坐标对所有顶点进行排序,然后为每个 x 坐标值查找最顶部和最底部的顶点。然后,您可以选择一个最左边的顶点,然后顺时针转到一个最右边的顶点(始终选择一路上最上面的顶点),然后继续并返回到初始顶点(始终选择最底部的顶点)。

关于c++ - 用颜色填充随机区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19081975/

相关文章:

c++ - QT - 空 QLineEdits 在写入 SQL 数据库时未作为 NULL 传递

c++ - 在单个 vbo 中对多个网格进行纹理化

c++ - 如何渲染到不同的层,然后将它们与 OpenGL 组合在一起?

cocoa - OpenGL 渲染顺序导致前景中的三角形在后台绘制

c++ - OpenGL不考虑GL_DIFFUSE位置光的距离

c++ - C++中的引用和析构函数

c++ - 使用 C++ 和 winsock 的蓝牙

c++ - int to void* - 避免 c 风格的转换?

java - 用于 C++ 和 Java 的 Diffie-Hellman 库

c++ - 毁灭者的召唤。和输入输出过载