在程式中,用結構體jdtime表示儒略日時間,結構體定義如下12
3456
78910
1112
/* 儒略日; */
struct
jdtime
}; 1
2345
6789
1011
12/*
簡化儒略日; */
struct
mjdtime
}; 1
2345
6789
10/*
通用時間定義; */
struct
commontime ;
1234
5678
9101112
13/* gps
時間定義 */
struct
gpstime
}; 無
1.儒略日到簡化儒略日轉換公式
假設簡化儒略日表示為mjd ,儒略日表示為jd 。我們可以得到jd=mjd-
2400000.5
3.轉換程式**
儒略日到簡化儒略日12
3456
7bool
jdtime2mjdtime
(const
jdtime jd
,mjdtime
*mjd)
簡化儒略日到儒略日12
3456
7bool
mjdtime2jdtime
(const
mjdtime mjd
,jdtime*jd
) 1.儒略日到通用時轉換公式
2.通用時到儒略日轉換公式
jd=int[365.25y]+int[30.6001(m+1)]+d+ut/24+1720981.5
mjd=jd
-2400000.5
其中:如果m≤
2 ,則y=y
-1,m=m+12
如果m>2 ,則y=y,m=m
jd 為儒略日
y 為年,m 為月, d為日,ut 為世界時
int 表示取實數的整數部分
3.轉換程式**
儒略日到通用時12
3456
78910
1112
1314
1516
1718
1920
2122
23bool
jdtime2commontime
(const
jdtime jd
,commontime
*common)
通用時到儒略日12
3456
78910
1112
1314
1516
1718
1920
21bool
commontime2jdtime
(const
commontime common
,jdtime*jd
) if(
common
.month
>2)
ut =common
.hour
+common
.minute
/60.0
+common
.second
/3600.0
; temptjd =(
int)(
365.25*y
)+(int
)(30.6001
*(m +1
))+common
.day
+ut
/24.0
+1720981.5
; jd
->
days =(
int)(
temptjd
); jd
->
fracday =(
temptjd
)-jd
->
days
; return
true; }
1.儒略日到gpst轉換公式
先將儒略日轉換為簡化儒略日
mjd=jd+2400000.5
再從簡化儒略日轉換gpst
gpsweek=int[(mjd
-44244)/7]
secofweek=(mjd
-44244
-gpsweek×7)
×86400
2.gpst到儒略日轉換公式
mjd=44244+gpsweek
×7+secofweek/86400
3.轉換程式**
儒略日到gpst12
3456
bool
jdtime2gpstime
(const
jdtime jd
,gpstime
*gps)
gpst到儒略日12
3456
78bool
gpstime2jdtime
(const
gpstime gps
,jdtime*jd
) 1.簡化儒略日到通用時轉換公式
jd=mjd+2400000.5,
a=int[jd+0.5]
b=a+1537
c=int[(b
-122.1)/365.25]
d=int[365.25×c]
e=int[(b
-d)/30.6001]
day=b-d
-int[30.6001
×e]+frac[jd+0.5]
month=e
-1-12
×int[e/14]
year=c
-4715
-int[(7+m)/10]
number=
mod(number=0,monday
⋯number=7,sunday)
hour=int
minute=int
seco
nd=int
2.通用時到簡化儒略日轉換公式
mjd=int[365.25
×y]+int[30.6001
×(m+1)]+day+ut/24
-679019
其中:如果m≤2 ,則y=year
-1,m=mout
h+12
如果m>2 ,則y=year,m=mouth
ut表示世界時
3.轉換程式**
簡化儒略日到通用時12
3456
78910
1112
1314
1516
1718
1920
bool
mjdtime2commtime
(const
mjdtime mjd
,commontime
*common)
通用時到簡化儒略日12
3456
78910
1112
1314
1516
1718
1920
2122
23bool
commontime2mjdtime
(const
commontime common
,mjdtime
*mjd)
if(common
.month
>2)
ut =common
.hour
+common
.minute
/60.0
+common
.second
/3600.0
; jd =(
int)(
365.25*y
)+(int
)(30.6001
*(m +1
))+common
.day
+ut
/24.0
+1720981.5
; mjd
->
days =(
int)(
365.25*y
)+(int
)(30.6001
*(m +1
))+common
.day
+ut
/24.0
+1720981.5
-2400000.5
; mjd
->
fracday =(
ut /
24.0)-
(int
)(ut
/24.0);
return
true; }
小程式實現錨點定位
在小程式中要實現錨點定位,需要使用到元件scroll view 需要用到的是scroll into view這條屬性,這條屬性的官網解釋是這樣的 scroll into viewstring 值應為某子元素id id不能以數字開頭 設定哪個方向可滾動,則在哪個方向滾動到該元素 於是乎,我們只需要給s...
js錨點定位
最好是name和id都是st。避免有些特殊情況 普通定位方式是在位址後面加上 st即可,現想通過js實現定位,如下 window.location.hash st 非js形式 zkm hxy 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 zkm b ...
計算幾何 點定位
2.判斷點是否在多邊形內 1 掃瞄法 用一條水平向右的射線判斷與多邊形相交的點數,若為奇數則在多邊形內,為偶數則在多邊形外。注 1 若其中乙個交點是多邊形的頂點,則需要判斷是否是凹多邊形,具體處理辦法為比較相鄰兩個頂點的叉積的積,小於0則不用改動,若大於0需要在計數時刪掉該點。2 若與一條邊相交,則...