当前位置:首页 > 技术心得 > 正文内容

穆斯林朝拜方向计算Qibla Direction

xjtudll13年前 (2013-10-31)技术心得65760

穆斯林礼拜都是朝向麦加的“克尔白”(Kaaba)。在中国,大家都知道是向西。但是,很多人并不清楚到底是向“正”西,还是向朝西的某个角度。精确的方向该如何计算?这个问题就等同于:已知两地(其中一地是麦加)的经度,纬度,如何求方位角。学术的讲法就是大地主题算法。

大地主题算法有好几种,例如贝塞尔大地主题算法,高斯平均引数等。

在球面上有两点P1P2,其中P1点的大地纬度φ1,大地经度λ1P2点的大地纬度φ2,大地经度λ2P1P2点间的大圆弧长为σ,P1P2的方位角为α1,其反方位角为α2

球面上大地主题正解是已知φ1,α1,σ,要求φ2, α2及经差λ(λ=λ2-λ1);反解是已知φ1,φ2及经差λ,要求σ,α1及α2

未命名  

  大地主题  P是真北

对于朝拜方向的计算,是大地主题的反解。

其中P2点是麦加,经纬度是:λ2=39.82°,φ2=21.42°

当然我们不需要计算弧长σ,只需要计算方位角α1。计算公式如下:

sshot-6    

注:λ2,φ2是麦加的经纬度:λ2=39.82°,φ2=21.42°

这里算出来的是方位角的正切值,还要将其转换成0~360的角度值。

1 p>0q>0

α1=arctan(|p/q|)

2p>0q<0

α1=180-arctan(|p/q|)

3 p<0q>0

α1=180+arctan(|p/q|)

4 p<0q<0

α1=360- arctan(|p/q|)

5 p=0q>0

    α1=0

6 p=0q<0

    α1=180

7 p>0q=0

    α1=90

8 p<0q=0

    α1=270  

很明显,朝拜方向是相对于正北来的。那么,首先要知道正北在哪里。配合指南针来使用是个好办法。需要注意的是,指南针是指向磁北的,磁北和真北不是重合的,有个磁偏角。  

参考文献:

1、贝塞尔大地主题反解的改进算法   史国友等

2Qibla Direction

http://moonsighting.com/qibla.html  

可从网页查看源代码,内有计算的过程 

3、白塞尔大地主题解算方法ppt(从百度文库下载)

4islamicfinder

http://www.islamicfinder.org/  

    该网站提供穆斯林软件下载,软件功能包括祈祷时间,祈祷方位角等等。

扫描二维码推送至手机访问。

版权声明:本文由鸟的天空发布,如需转载请注明出处。

本文链接:http://xjtudll.cn/Exp/289/

标签: 穆斯林算法
分享给朋友:

“穆斯林朝拜方向计算Qibla Direction” 的相关文章

会声会影X8安装提示已安装另一个版本的解决方法

会声会影X8安装提示已安装另一个版本的解决方法

问题描述: 从未安装过会声会影,但是安装会声会影X8时提示已安装另一个版本。 原因: 只要系统安装了C++ 2005 redistributable和C++2008 redistributable,就会提示你会声会影已安装另一个版本。 解决办法: 卸载C++ 2005 redistributable...

远程计算机需要网络级别身份验证,而您的计算机不支持该验证

远程计算机需要网络级别身份验证,而您的计算机不支持该验证

问题:使用Win7可以连接服务器的远程桌面,使用XP不行。 服务器是Windows Server 2012 解决办法有两种: 一、修改本地电脑设置 参考资料:https://jingyan.baidu.com/article/380abd0a713f061d91192c63.html 1、点击开始...

ios设备分辨率、屏幕尺寸、屏幕密度

iPhone Devices iPhone 5S Retina 4" Screen 326ppi 16:9 640 x 1136 px 123.8 x 58.6 x 7.6 mm 112...

SSCOM无法保存窗口数据到文本文件

SSCOM无法保存窗口数据到文本文件

使用环境: Win7 64bit SSCOM 3.2 问题: “保存窗口”功能无效,每次都是提示error 如下图所示: 原因: 相应的目录根本不存在,请看错误窗口。 目录SAVE2017/3实际上并不存在,软件也没有自动新建该目录 解决办法: 在SSCOM同级目录下,新建...

vc改变进度条颜色及去掉进度条边框

参考资料:http://blog.csdn.net/athemon/archive/2009/06/03/4238200.aspx 1、改变进度条颜色 SendMessage这个函数 代码如下:       m_Progress1.SendMessa...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。