用PHP画出一块钟表

作者: aries 分类: PHP 发布时间: 2011-05-04 08:00 ė 977次浏览 6 1评论

根据系统的时间,画出一块钟表,如图:


<?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);

换一个
  1. aries 2011-05-04 14:22:56

    ctester

Ɣ回顶部