24

我已经获得了一个带有 x 和 y 坐标、旋转变量等的 2D 三角形的结构。从这些 x 和 y 坐标创建的点开始,我应该围绕该点绘制一个三角形并使用旋转变量适当地旋转它。

我熟悉使用 GL_TRIANGLES 在 OpenGL 中绘制三角形。我的问题是以某种方式提取三角形的中间并在其周围绘制顶点。

编辑:是的,我正在寻找的是质心。

4

4 回答 4

45

三角形的中心有不同的“类型”。详细信息:三角形的中心。找到三角形中心的一种快速方法是平均所有点的坐标。例如:

GLfloat centerX = (tri[0].x + tri[1].x + tri[2].x) / 3;
GLfloat centerY = (tri[0].y + tri[1].y + tri[2].y) / 3;

找到中心后,您需要围绕中心旋转三角形。为此,请平移以使中心现在位于 (0, 0)。执行您的旋转。现在反转您之前执行的翻译。

于 2009-02-07T23:04:10.733 回答
6

我猜你的意思是三角形的质心!?
这可以通过 1/3(A + B + C) 轻松计算,其中 A、B 和 C 是三角形的相应点。如果你有你的观点,你可以像往常一样简单地将它们乘以你的旋转矩阵。希望我说对了。

于 2009-02-07T23:05:28.563 回答
2

三角形中有几个点可以被认为是它的中心(正交中心、质心等)。维基百科关于三角形的文章的这一部分有更多信息。只需查看图片即可快速概览。

于 2009-02-07T23:05:20.887 回答
-1

“中间”是指“质心”,如果它是一个具有恒定厚度和密度的 3D 对象,也就是重心?

如果是这样,则选择两个点,并找到它们之间的中点。然后取这个中点和第三个点,找到它们之间1/3的点(更靠近中点)。那是你的质心。我不是在为你做数学。

于 2009-02-07T23:06:36.890 回答