最准确的定位数据类型

时间:2015-05-25 21:55:57

标签: c# math xna monogame

这是非常烦人的事情。在XNA / Monogame中,SpriteBatch.Draw使用Vector2作为位置,或使用Rectangle作为位置。 Vector2接受浮点值,而Rectangles只接受整数。

我需要使用浮点数/双打,因为它们支持图像在屏幕上的平滑移动。但是,在执行需要余弦和正弦,截断或任何数学转换函数的事情时,我注意到了特定的数学错误。

以此公式为例:

for(int i = 0; i < 8; i++)
{

creategraphic(320+64*cos(360/8*i),240*+64*sin(360/8*i));

}

这应该在半径为64的圆上创建8个纹理,并且均匀分布。然而,结果远不止于此。我得到的对象产生的对象从相同的角度或甚至更糟的东西产生。

因此,对于定位,在处理复杂的数学计算时仍然保持准确性的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

像阿列克谢说的那样,三角函数使用的是Radians,而不是Degrees。 XNA有一个帮助程序类,可以完成所需的转换:

https://msdn.microsoft.com/en-us/library/microsoft.xna.framework.mathhelper.toradians.aspx