c++ - 如何生成随机顶点以在 C++ 中形成凸多边形?

标签 c++ algorithm computational-geometry

我需要为一个简单的凸多边形生成一组顶点,以便使用动态规划对该多边形进行最小权重三角剖分,我想取一个半径为 r 的圆,然后取 20 个顶点逆时针移动,然后我将形成一个 20 顶点的凸多边形,但我该怎么做

我如何知道位于半径为 r 的圆上的顶点?

除此之外,还有另一种更简单的方法来生成凸多边形的顶点吗

非常感谢任何帮助

最佳答案

生成 0 到 2*pi 之间的 20 个随机数,并对它们进行排序。

现在使用一些基本的三角函数来转换为 X、Y 坐标。

for (int i = 0; i < 20; i++)
{
    x = x0 + r*cos(angle[i]);
    y = y0 + r*sin(angle[i]);
    // ...
}

关于c++ - 如何生成随机顶点以在 C++ 中形成凸多边形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21690008/

相关文章:

c++ - 模板化的 Barton 和 Nackman 技巧问题

java - 不重复的字符串的排列

arrays - 求数组中 K 个连续项的最小总和

algorithm - 如何从半边结构中去除边?

python - 你如何从一系列点生成非凸包?

c++ - 设置 EOF 标志后,无法让 fstream 返回 0

c++ - 想知道为什么 OpenMP 代码不能并行化

c++ - 为什么 basic_string::swap 不是 noexcept?

performance - 给定一个矩形内的点,确定最接近该点的边

algorithm - 线段集合的最佳交集?