我正在用 C# 为我的 Windows Phone 7 开发一个应用程序。 我想用指南针向我展示朝拜方向(或我想要的方向)。 我怎样才能做到?我可以用 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)));
你能帮我看看我该怎么做吗?谢谢。
最佳答案
目前您构建它的方式只是使用屏幕中心作为原点,然后渲染一条长度始终为 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/
这是一个关于如何制作指南针的教程,在文章的底部可以下载可用的源代码。祝你好运!
关于c# - 指南针通常向我指示北方。但我想从中展示另一种方式(?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13792346/