根据半径和中心坐标指定三角形的顶点

时间:2012-06-06 09:25:55

标签: c# xna geometry

这是否有代码公式?我正在使用C#和XNA,在我的班级中我有一个由三个向量组成的数组(表示三角形的顶点),以及一个单独的向量坐标。

我计划在循环中更新这些位置,因为它会进一步向屏幕顶部升级。

我会问maths.stackexchange.com,但看看这是如何适用于编程的(我个人更擅长阅读代码而不是数学本身 - 我仍然在学校学习代数),我认为它会让我更有意义在这里问。

修改 是的,我正在寻找一个等边三角形。或者任何三角形,就此而言。它是什么并不重要。我所寻找的只是一个公式;那很难要求吗?

问题

基本上,我试图解决的问题是从我的玩家中射出三角形(想想太空入侵者;即三角形充当射线枪的射线)。我需要的是一个代码公式,它允许三角形基于其中心位置和半径进行渲染,因为三角形将在其Y坐标上向上移动。我有绘制调用,但它们有效,但问题是三角形放入for循环绘制迭代时(中心向量位置 - Y坐标 - 增加N坐在玩家的位置旁边坐着

1 个答案:

答案 0 :(得分:1)

我认为这就是你要找的...... 角度是三角形的方向...... 这构建了一个三角形......

void BuildTriangle(Vector2 Center, float Radius, float Angle, Vector2[] tri)
{
   for (int i=0; i<3; i++)
   {
      t[i].X = Center.X + Radius * (float) Math.Cos(Angle + i * 2 * MathHelper.PI/3);
      t[i].Y = Center.Y + Radius * (float) Math.Sin(Angle + i * 2 * MathHelper.PI/3);
   }
}

如果你想移动它,将速度向量添加到中心并重建它......