java - 如何计算构成多边形中每个三角形的顶点?
问题描述
我目前正在使用 Opengl,并且正在尝试创建一个可以自动计算多边形的顶点缓冲区数据和元素缓冲区数据的类。
下面是创建顶点数据的代码:
float centerangle = (float)(2*Math.PI / sides);
ArrayList verticies = new ArrayList<Float>();
for (int i=0; i<sides; i++) {
float angle = (i*centerangle);
float x = (float)Math.round(Math.cos(ang))/2f;
float y = (float)Math.round(Math.sin(ang))/2f;
float z = 0.0f;
verticies.add(x);
verticies.add(y);
verticies.add(z);
}
return verticies;
鉴于sides == 5
此方法创建以下值:
float[] {
0.5, 0.0, 0.0,
0.0, 0.5, 0.0,
-0.5, 0.5, 0.0,
-0.5, -0.5, 0.0,
0.0, -0.5, 0.0
}
我正在尝试创建一个现在将生成元素缓冲区数据的方法。截至目前,我已经对其进行了硬编码。例如,对于五边形,元素缓冲区数据如下所示:
new int[] {
1,2,3,
3,1,4,
0,1,4
};
这会创建 3 个像这样的三角形
所以我的问题是有没有一种方法可以计算我的方法创建的任何多边形的元素缓冲区数据?那会是什么样子?
解决方案
推荐阅读
- python - 使用python在图像上查找符号的位置
- elasticsearch - 在 Elasticsearch 7.4 上无法过滤某些属性。如何过滤它们?
- angular - 如何自定义 mat-paginator 下拉位置?
- python - 如何在 Python 中打印形状?
- javascript - Reactjs 中的 API 调用
- python - Run python script in jenkins
- python - 按顺序组织列表中的元素
- c++ - C++ 只读取一行字符
- sql-server - 如何从ms sql中的变量中删除最后一个值
- python - 烧瓶应用程序中超出了Python最大递归深度