我在XNA中开发应用程序,它绘制随机路径。不幸的是,我与图形失去联系,所以我有点卡住了。我的应用程序需要执行以下操作:
(请原谅我可怕的照片)
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,我与图形很不相干。有什么帮助吗?
谢谢, 乔治
答案 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应该为您提供更具体的详细信息。