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


    <時刻─日影の長さ>対応表作成のコンピュータプログラム例を,以下に示す。
    これは,html で実行する PHP プログラムである。
    日影移動の計算 ) ";  (モジュールA を挿入) /* 表ヘッダ *************************************/ print " 北緯 ".$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 ) ){ $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 " <td align=right bgcolor=\"#".$bgcl."\">".$shadowK."</td>"; } else{ print " <td align=center bgcolor=\"#".$bgcl."\">─</td>"; } } else { print " <td bgcolor=\"#666699\"> </td>"; } } print " </tr>"; } print " </table> ";