我需要用颜色填充任何随机区域。我有几个坐标点(点数> 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();
但结果并不像预期的那样
我知道点应该按某种特定顺序排列 - 但如何将其应用于随机点?
最佳答案
您需要对所有顶点进行排序,以便按照顺序绘制凸多边形。这其实是计算几何的题目:convex hull .
一个简单的算法是,您首先根据 x 坐标对所有顶点进行排序,然后为每个 x 坐标值查找最顶部和最底部的顶点。然后,您可以选择一个最左边的顶点,然后顺时针转到一个最右边的顶点(始终选择一路上最上面的顶点),然后继续并返回到初始顶点(始终选择最底部的顶点)。
关于c++ - 用颜色填充随机区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19081975/