用PHP画出一块钟表
根据系统的时间,画出一块钟表,如图:
<?php
$img = imagecreatetruecolor(450, 450);
white</span> <span class="highlight-o">=</span> <span class="highlight-nx">imagecolorallocate</span><span class="highlight-p">(</span><span class="highlight-nv">img, 255, 255, 255);
red</span> <span class="highlight-o">=</span> <span class="highlight-nx">imagecolorallocate</span><span class="highlight-p">(</span><span class="highlight-nv">img, 255, 0, 0);
black</span> <span class="highlight-o">=</span> <span class="highlight-nx">imagecolorallocate</span><span class="highlight-p">(</span><span class="highlight-nv">img, 0, 0, 0);
grey</span> <span class="highlight-o">=</span> <span class="highlight-nx">imagecolorallocate</span><span class="highlight-p">(</span><span class="highlight-nv">img, 211, 211, 211);
imagefill(img</span><span class="highlight-p">,</span> <span class="highlight-mi">0</span><span class="highlight-p">,</span> <span class="highlight-mi">0</span><span class="highlight-p">,</span> <span class="highlight-nv">white);
imagearc(img</span><span class="highlight-p">,</span> <span class="highlight-mi">224</span><span class="highlight-p">,</span> <span class="highlight-mi">224</span><span class="highlight-p">,</span> <span class="highlight-mi">400</span><span class="highlight-p">,</span> <span class="highlight-mi">400</span><span class="highlight-p">,</span> <span class="highlight-mi">0</span><span class="highlight-p">,</span> <span class="highlight-mi">0</span><span class="highlight-p">,</span> <span class="highlight-nv">black);
imagefilledarc(img</span><span class="highlight-p">,</span> <span class="highlight-mi">224</span><span class="highlight-p">,</span> <span class="highlight-mi">224</span><span class="highlight-p">,</span> <span class="highlight-mi">15</span><span class="highlight-p">,</span> <span class="highlight-mi">15</span><span class="highlight-p">,</span> <span class="highlight-mi">0</span><span class="highlight-p">,</span> <span class="highlight-mi">0</span><span class="highlight-p">,</span> <span class="highlight-nv">black, IMG_ARC_PIE);
for (zz</span> <span class="highlight-o">=</span> <span class="highlight-mi">0</span><span class="highlight-p">;</span> <span class="highlight-nv">zz < 60; $zz++) {
digitCoords</span><span class="highlight-p">[</span><span class="highlight-nx">´x´</span><span class="highlight-p">][]</span> <span class="highlight-o">=</span> <span class="highlight-mi">175</span> <span class="highlight-o">*</span> <span class="highlight-nx">cos</span><span class="highlight-p">(</span><span class="highlight-nx">deg2rad</span><span class="highlight-p">((</span><span class="highlight-nv">zz-10) (360/60))) + 224;
digitCoords</span><span class="highlight-p">[</span><span class="highlight-nx">´y´</span><span class="highlight-p">][]</span> <span class="highlight-o">=</span> <span class="highlight-mi">175</span> <span class="highlight-o">*</span> <span class="highlight-nx">sin</span><span class="highlight-p">(</span><span class="highlight-nx">deg2rad</span><span class="highlight-p">((</span><span class="highlight-nv">zz-10) (360/60))) + 224;
}
for (zz</span> <span class="highlight-o">=</span> <span class="highlight-mi">0</span><span class="highlight-p">;</span> <span class="highlight-nv">zz < 60; $zz++) {
if ($zz % 5 == 0)
imagestring(img</span><span class="highlight-p">,</span> <span class="highlight-mi">5</span><span class="highlight-p">,</span> <span class="highlight-nv">digitCoords[´x´][zz</span><span class="highlight-p">]</span> <span class="highlight-o">-</span> <span class="highlight-mi">4</span><span class="highlight-p">,</span> <span class="highlight-nv">digitCoords[´y´][zz</span><span class="highlight-p">]</span> <span class="highlight-o">-</span> <span class="highlight-mi">6</span><span class="highlight-p">,</span> <span class="highlight-p">(</span><span class="highlight-nv">zz/5) + 1, $black);
else
imagefilledarc(img</span><span class="highlight-p">,</span> <span class="highlight-nv">digitCoords[´x´][zz</span><span class="highlight-p">],</span> <span class="highlight-nv">digitCoords[´y´][zz</span><span class="highlight-p">],</span> <span class="highlight-mi">3</span><span class="highlight-p">,</span> <span class="highlight-mi">3</span><span class="highlight-p">,</span> <span class="highlight-mi">0</span><span class="highlight-p">,</span> <span class="highlight-mi">0</span><span class="highlight-p">,</span> <span class="highlight-nv">grey, IMG_ARC_PIE);
}
$seconds = date(´s´);
minutes</span> <span class="highlight-o">=</span> <span class="highlight-nx">date</span><span class="highlight-p">(</span><span class="highlight-nx">´i´</span><span class="highlight-p">)</span> <span class="highlight-o">+</span> <span class="highlight-p">(</span><span class="highlight-nv">seconds/60);
hours</span> <span class="highlight-o">=</span> <span class="highlight-nx">date</span><span class="highlight-p">(</span><span class="highlight-nx">´h´</span><span class="highlight-p">)</span> <span class="highlight-o">+</span> <span class="highlight-p">(</span><span class="highlight-nv">minutes/60);
$r_sec = 175;
$r_min = 175;
$r_hr = 125;
x_sec</span> <span class="highlight-o">=</span> <span class="highlight-nv">r_sec cos(deg2rad(($seconds-15) (360/60))) + 224;
y_sec</span> <span class="highlight-o">=</span> <span class="highlight-nv">r_sec sin(deg2rad(($seconds-15) (360/60))) + 224;
x_min</span> <span class="highlight-o">=</span> <span class="highlight-nv">r_min cos(deg2rad(($minutes-15) (360/60))) + 224;
y_min</span> <span class="highlight-o">=</span> <span class="highlight-nv">r_min sin(deg2rad(($minutes-15) (360/60))) + 224;
x_hr</span> <span class="highlight-o">=</span> <span class="highlight-nv">r_hr cos(deg2rad(($hours-3) (360/12))) + 224;
y_hr</span> <span class="highlight-o">=</span> <span class="highlight-nv">r_hr sin(deg2rad(($hours-3) (360/12))) + 224;
imageline(img</span><span class="highlight-p">,</span> <span class="highlight-mi">224</span><span class="highlight-p">,</span> <span class="highlight-mi">224</span><span class="highlight-p">,</span> <span class="highlight-nv">x_sec, y_sec</span><span class="highlight-p">,</span> <span class="highlight-nv">red);
imagesetthickness($img, 3);
imageline(img</span><span class="highlight-p">,</span> <span class="highlight-mi">224</span><span class="highlight-p">,</span> <span class="highlight-mi">224</span><span class="highlight-p">,</span> <span class="highlight-nv">x_min, y_min</span><span class="highlight-p">,</span> <span class="highlight-nv">black);
imagesetthickness($img, 5);
imageline(img</span><span class="highlight-p">,</span> <span class="highlight-mi">224</span><span class="highlight-p">,</span> <span class="highlight-mi">224</span><span class="highlight-p">,</span> <span class="highlight-nv">x_hr, y_hr</span><span class="highlight-p">,</span> <span class="highlight-nv">black);
header("Content-type: image/png");
imagepng($img);
imagedestroy($img);
ctester