查找规则多边形的顶点
Find regular polygon's vertices
我有一些由用户定义的属性,然后我想用它们自动生成一个正多边形。属性包括中心x、中心y、半径和顶点数。我想知道如何计算正多边形所有顶点的x和y坐标。我已经尝试过计算正多边形的坐标';s顶点讨论。但它总是给我错误的坐标。我当前的代码如下(C++):
#define DOUBLE(a) ((a)*(a))
if(radius <= 0 || vertices < 3)
return NULL;
Polygon* poly = new Polygon;
double angle = DOUBLE(M_PI) / vertices;
for(long i = 0; i < vertices; i++)
{
double a = (angle * i);
poly->add(centerX + radius * cos(a), centerY + radius * sin(a));
}
return poly;
角度计算出错。
每个顶点之间的角度应为2 * M_PI / vertices
。
显然你的宏:
#define DOUBLE(a) ((a)*(a))
不正确。
然而,在C++中,你真的不应该用宏来进行这种琐碎的操作——它最多应该是一个内联函数,或者只是上面给出的直接公式。
尝试
#define DOUBLE(a) ((a) + (a))
或
#define DOUBLE(a) (2 * (a))
你在一个错误的身份下定义SQUARE(a)。
相关文章:
- 如何循环打印顶点结构
- 计算缩放多边形的比例,得到给定的多边形面积
- 将QGraphicsItem的移动区域限制在多边形区域内
- D3D11-将混合权重和索引传递到顶点着色器
- 从返回的顶点缓冲区查询顶点结构
- Vulkan 中的动态顶点缓冲区格式设置
- 在顶点着色器中使用 OpenGl 的未声明标识符,我在顶点着色器中绘制三角形时遇到问题
- 重新排列单线以形成闭合多边形?
- 提升几何体:C++并集多个多边形
- 如何将一半传递给顶点着色器?
- 在 QT C++中绘制/操作多边形
- Maya API C++:从多边形获取材质
- 在 DirectX 11 中从 GPU 读回顶点缓冲区(并获取顶点)
- QT QOpenGLWidget:如何在不使用数据块复制的情况下修改VBO中的单个顶点值?
- 如何绘制具有随机顶点数量的多边形并旋转它们
- OpenGL 透视投影裁剪多边形与顶点在视锥体之外 = 错误的纹理映射?
- 为什么 OpenGL 多边形会忽略两个顶点
- 纹理每个多边形在顶点数组- OpenGL
- 查找规则多边形的顶点
- 多边形的操作-如何排序找到的顶点