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

穆斯林朝拜方向计算Qibla Direction

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

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

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

在球面上有两点P1和P2,其中P1点的大地纬度φ1,大地经度λ1,P2点的大地纬度φ2,大地经度λ2;P1和P2点间的大圆弧长为σ,P1和P2的方位角为α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>0,q>0

α1=arctan(|p/q|)

(2) p>0,q<0

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

(3) p<0,q>0

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

(4) p<0,q<0

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

(5) p=0,q>0

    α1=0

(6) p=0,q<0

    α1=180

(7) p>0,q=0

    α1=90

(8) p<0,q=0

    α1=270  

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

参考文献:

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

2、Qibla Direction

http://moonsighting.com/qibla.html  

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

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

4、islamicfinder

http://www.islamicfinder.org/  

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

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

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

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

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

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

简单的谈一谈mklink

最近重装了一次系统,吸取了以前的经验教训,这次对个人资料的转移进行了比较充分的了解。 Vista和Win7本身自带了转移个人文件夹的功能。例如,我的文档,我的图片等都可以在【位置】选项卡里进行迁移。但是这个功能还有缺陷,因为很多软件的配置不能迁移,即appdata(隐藏文件夹)这个文件夹没法利用自带...

C# 用NPOI操作读写2007版的excel错误

现象: 导出Excel2003正常,导出Excel2007莫名其妙的错误。 C#用NPOI操作读写类网上很多了,在此不重复。 我引用的dll:NPOI.dll,NPOI.OOXML.dll,NPOI.OpenXml4Net.dll, 解决方法:还需要引用ICSharpCode.SharpZipLib...

object-c 函数前面加号和减号 +和-的区别

简单来说就是: 加号 是可以通过类名直接调用这个方法; 减号则要实例化逸个对象,然后通过实例化的对象来调用该方法!! 使用的时候请注意。...

Quartus II计数器仿真:31之后变成字符

Quartus II计数器仿真:31之后变成字符

计数器波形仿真,在执行到31时会突然变成[] ! 之类的符号。如图: 原因: 信号的显示格式选择成了ASCII码,当数值等于ASCII码符号区的时候就会显示为符号了。 解决办法: 1、选择要显示的信号,右键,属性(Properties) 2、将显示格式改成自己所需的,一般是Hexadecimal...

两个路由器连接设置

两个路由器连接在一起,有两种方式,为表述方便,以A、B代替路由器名称 一、A路由器当路由器用,B路由器当交换机用 组网方式:A的LAN口接B的任意一个LAN口,A和B的其余LAN口接PC,两台路由器最多可供6台PC上网。 A路由器的设置方式就不说了,重点是要开启DHCP,且要设置自动分配的IP范围...

Multisim运放输出超过电源电压解决

Multisim运放输出超过电源电压解决

在使用Multisim自带库里的运放的时候,例如LM324M,发现一个问题,运放的输出电压能达到几百V甚至几千V,而电源明显只有几V而已。输出电压超过电源电压,理论上是不可能的,实际上也是不可能的,那么肯定就是仿真有误了,其实根本原因是Multisim里面运放是三脚模型,根本没考虑电源。我们查看LM...

发表评论

访客

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