2

我正在为我的 windows phone 7 制作一个带有 c# 的应用程序。我想使用指南针向我展示朝拜方向(或我想要的方向)。我怎样才能做到?我可以用 lang 和 latitute 从我的位置计算朝拜方向的度数。(例如结果是北方以东 150 度)

但是,我无法为其绘制方向线。它显示的是北方,而不是我想要的方式。所以现在我使用这个代码来画线:

magneticLine.X2 = magneticLine.X1 - (200 * Math.Sin(MathHelper.ToRadians((float)compassReading.MagneticHeading)));

magneticLine.Y2 = magneticLine.Y1 - (200 * Math.Cos(MathHelper.ToRadians((float)compassReading.MagneticHeading)));

你能帮我看看我怎么做这个吗?谢谢。

4

1 回答 1

1

您当前构建它的方式只是使用屏幕的中心作为原点,然后渲染一条长度始终为 200 像素的线。您需要在画线之前调整/篡改度数读数(这就是为什么它没有为您指向正确的方向)。

此外,一旦您有您认为正确的东西,请使用 Windows Phone 模拟器在麦加的 Kaaba 周围绘制 GPS 点(即在 Kaaba 周围画一个点,然后运行模拟)。这将允许您查看您的解决方案是否适用于 360* 半径范围内的个人。

此外,这个增强现实工具包可以帮助您,因为它在根据您的 GPS 位置计算方向时为您做一些数学运算:http: //gart.codeplex.com/

我希望这有帮助。如果您在阅读完上述内容后仍然卡住,我可以为您编写代码,以便您更好地理解。

最后,确定范围: http: //www.jeffblankenburg.com/2011/11/04/31-days-of-mango-day-4-compass/

这是一个关于如何使用工作源代码制作指南针的教程,可在文章底部下载。祝你好运!

于 2012-12-12T17:03:20.983 回答