<時刻─日影の長さ>対応表作成のコンピュータプログラム例を,以下に示す。
これは,html で実行する PHP プログラムである。
( 日影移動の計算 )
";
(モジュールA を挿入)
/* 表ヘッダ *************************************/
print "
北緯 ".$a_degree." 度の場合
公転 角度 |
月日 |
南中 の時刻 |
○時の影の長さ (倍率) |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
";
/* 表生成ループ *************************************/
for( $i = $t_from_degree; $i < $t_to_degree; $i = $i + $t_u_degree ){
/******* レコード (表の1行分) 書き出し ********************/
if( ( $i % 90 ) == 0 ){
print "
";
}
else {
print "
";
}
print "
".$i." |
".$date[$i]." |
".$midsun_time[$i]." | ";
for( $k = 4; $k <= 20; $k++ ){
$sunrise = $sunrise_rad[$i];
$sunset = $sunset_rad[$i];
$midday = $midday_rad[$i];
$middayDEG = $midday_deg[$i];
if( $midday > $sunset ){
$sunset = $sunset + pi() * 2;
}
if( $sunrise > $midday ){
$middayDEG = $middayDEG + 360;
$sunset = $sunset + pi() * 2;
}
/* $k 時の経度 */
$bK_deg = $middayDEG + 15 * ( $k - 12 );
$bK_rad = deg2rad( $bK_deg );
/* 日出から日入までの間か? */
if( ( $bK_rad > $sunrise ) && ( $bK_rad <$sunset ) ){
$bK_c = cos( $bK_rad );
$bK_s = sin( $bK_rad );
$alphaK_c = $a_c * $tau_s[$i] * $bK_c
- $n_c * $a_c * $tau_c[$i] * $bK_s + $n_s * $a_s * $tau_c[$i];
$alphaK = acos( $alphaK_c );
$shadowK = round( tan( $alphaK ), 1 );
if( $shadowK < 0 ){
$shadowK = - $shadowK;
}
if( $k == 12 ){
$bgcl = "ffb000";
}
else {
$bgcl = "ffff66";
}
if( $shadowK < 100 ){
print "
".$shadowK." | ";
}
else{
print "
─ | ";
}
}
else {
print "
| ";
}
}
print "
";
}
print "
";
|