按角度查找坐标

时间:2010-03-26 19:37:40

标签: c# graphing

我在XNA中开发应用程序,它绘制随机路径。不幸的是,我与图形失去联系,所以我有点卡住了。我的应用程序需要执行以下操作:

  1. 从我的原点(0,0)中选择一个随机角度,这很简单。
  2. 以上面找到的角度绘制一个相对于该原点的圆,距离16px(或我指定的任何距离)。
  3. (请原谅我可怕的照片)

    alt text http://www.refuctored.com/coor.png

    (16,16)处的第二个圆圈表示距离我原点16个像素的45度角。

    我想有一种方法可以传递我的距离和角度,返回一个点到图形。即。

    private Point GetCoordinate(float angle, int distance)
    {
       // Do something.
       return new Point(x,y);
    }
    

    我知道这很简单,但是agian,我与图形很不相干。有什么帮助吗?

    谢谢, 乔治

4 个答案:

答案 0 :(得分:5)

如果角度为度,请先执行:

angle *= Math.PI / 180;

然后:

return new Point(distance * Math.Cos(angle), distance * Math.Sin(angle));

顺便说一句,(16,16)处的点与原点不是16像素,而是sqrt(16 ^ 2 + 16 ^ 2)= sqrt(512)= ~22.63像素。

答案 1 :(得分:1)

private Point GetCoordinate(float angle, int distance)
{
  float x = cos(angle) * distance;
  float y = sin(angle) * distance;
  return new Point(x, y);
}

请注意,三角函数可能需要弧度。如果您的角度是度,则除以180 / Pi。

答案 2 :(得分:0)

一般来说:

x = d * cos(theta)
y = d * sin(theta)

其中d是距离原点的距离,θ是角度。

答案 3 :(得分:0)

了解Pythagorean Theorem。然后this thread应该为您提供更具体的详细信息。