Up <時刻─日影の向き>対応表作成コンピュータプログラム 作成: 2020-10-07
更新: 2021-11-20


    <時刻─影の向き>対応表作成のコンピュータプログラム例を,以下に示す。
    これは,html で実行する PHP プログラムである。
    日影移動の計算 ) ";  (モジュールA を挿入) /* 表ヘッダ *************************************/ print " 影の角度 (南中時の影に対して) <br>北緯 ".$a_degree." 度の場合 <table cellpadding=2><tr><td></td></tr></table> <table border=1 cellspacing=0> <tr> <td rowspan=2 align=center nowrap>公転<br>角度</td> <td rowspan=2 align=center bgcolor=\"#e3e3e3\">月日</td> <td rowspan=2 align=center\">南中<br>の時刻</td> <td colspan=17 align=center>南中の影と○時の影のなす角の大きさ (度)</td> </tr> <tr> <td align=center>4</td> <td align=center>5</td> <td align=center>6</td> <td align=center>7</td> <td align=center>8</td> <td align=center>9</td> <td align=center>10</td> <td align=center>11</td> <td align=center bgcolor=\"#ffb000\">12</td> <td align=center>13</td> <td align=center>14</td> <td align=center>15</td> <td align=center>16</td> <td align=center>17</td> <td align=center>18</td> <td align=center>19</td> <td align=center>20</td> </tr> "; /* 表生成ループ *************************************/ for( $i = $t_from_degree; $i < $t_to_degree; $i = $i + $t_u_degree ){ /******* レコード (表の1行分) 書き出し ********************/ if( ( $i % 90 ) == 0 ){ print " <tr bgcolor=\"#eedd00\">"; } else { print " <tr>"; } print " <td align=right>".$i."</td> <td bgcolor=\"#e3e3e3\">".$date[$i]."</td> <td>".$midsun_time[$i]."</td>"; 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 ) ){ $pK = $bK_rad - $midsun_rad[$i]; $pK_c = cos( $pK ); $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 ); $alphaK_s = sin( $alphaK ); $betaK_c = ( $pK_c - $alphaK_c * $alpha_c[$i] ) / ( $alphaK_s * $alpha_s[$i] ); $betaK_rad = acos( $betaK_c ); $betaK_deg = round( rad2deg( $betaK_rad ), 0 ); if( $k == 12 ){ $bgcl = "ffb000"; } else { $bgcl = "ffff66"; } print " <td align=right bgcolor=\"#".$bgcl."\">".$betaK_deg."</td>"; } else { print " <td bgcolor=\"#666699\"> </td>"; } } print " </tr>"; } print " </table> ";