-1

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

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

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

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

问题

基本上,我要解决的问题是从我的播放器中射出一个三角形(想想Space Invaders;即,三角形充当来自射线枪的射线)。我需要的是一个代码公式,它将允许根据三角形的中心位置和半径来渲染三角形,因为三角形将在其Y坐标上向上移动。我有绘图调用,它们可以工作,但问题是当放入 for 循环绘图迭代时三角形(其中中心向量位置 - 在Y坐标上 - 增加N) 只是在绘制时位于玩家的位置旁边.

4

1 回答 1

2

我想这就是你要找的......角度是三角形的方向......这建立了一个三角形......

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);
   }
}

如果你想移动它,在中心添加一个速度矢量并重建它......

于 2012-06-06T16:29:24.663 回答