การวาดนาฬิกาเข็มในรูปแบบ gif

ปรับปรุง : 2548-02-06 ()

บทเรียน ONLINE : การเขียนภาษา PHP
[ การวาดนาฬิกาเข็มในรูปแบบ gif ]

  1. ข้อควรทราบ
  2. ผลลัพธ์ของโปรแกรมนี้ - วาดนาฬิกาเข็มในรูปแบบ gif
  3. รวมคำสั่งสำคัญสำหรับระบบ graphic ในการสร้างนาฬิกา
  4. รวมคำสั่งสำคัญสำหรับคำนวณเวลา
  5. โปรแกรม php3 ที่ใช้เขียน นาฬิกา
  6. แบบฝึกหัด
หมายเหตุ : ที่ wordlzone.net นี่เปลี่ยนหนักเข้าไปอีกครับ คือนอกจากให้บริการ php เฉพาะคนที่เสียเงินแล้ว ยังลบข้อมูลในเว็บทั้งหมดที่ฝากไว้กับเขา ทิ้งทั้งหมดเลยครับ ที่เคยเขียน graph ได้ก็เลยหายไปด้วย
ข้อควรทราบ
  1. ผมเคยพยายามเขียน php เรียนกใช้ imagecreate ที่ domaindlx.com แต่ที่นั่นไม่บริการ และเมื่อวันที่ 10 เมษายน 43 เขาก็ปิดบริการ php ที่ผมใช้อยู่ ทำให้ต้องไปขอพื้นที่จาก worldzone.net และที่ยอดก็คือ worldzone.net นี้ให้บริการ graphic อย่างไม่มีปัญหา เช่นการทำบทเรียนเขียน นาฬิกาเข็มนี้
  2. มีข้อจำกัดเล็กน้อยเช่น แฟ้ม php ต้องมีนามสกุลเป็น php3 ไม่งั้น upload ผ่านเว็บไม่ได้ แต่เคยลองที่ domaindlx.com นั้นใช้นามสกุล php เฉย ๆ เขาก็รับ
  3. source โปรแกรมนี้ (tstclock.php3) ผมไม่แน่ใจว่า copy มาจากที่ใด อาจเป็นของ อ.กิตติภูมิ หรือไม่ก็จาก php.net ที่นั้นมีกระดานแสดงความคิดเห็น เคยเห็น source code ที่น่าสนใจ ก็เลย copy มาทดสอบดู ไม่รู้ว่าโปรแกรมนี้รึเปล่า .. แต่ไงก็ต้องขอบคุณผู้เขียน และผมก็ปรับปรุงอะไรนิดหน่อย ให้สั้นขึ้นอีกนิดหนึ่ง
  4. ส่วนโปรแกรม tstclock1.php3 และ tstclock2.php3 ผมใช้วิธีตัดออกมาจาก tstclock.php3 เพื่อแยกอธิบายส่วน graphic และส่วนของการคำนวณเวลา เมื่อไปอ่านโปรแกรม tstclock.php3 จะได้เข้าใจง่ายขึ้น

ผลลัพธ์ของโปรแกรมนี้ - วาดนาฬิกาเข็มในรูปแบบ gif
ผลลัพธ์ที่ต้องการ คำสั่งเรียก tstclock.php3 ใน html ทั่วไป
คำสั่งข้างล่างนี้ใช้วาดรูปนาฬิกา
<img src=http://www.thaiall.com/php/tstclock.php3>
คำสั่งข้างล่างนี้ใช้วาดรูปแสดงตัวอย่างคำสั่ง graphic สำหรับสร้างนาฬิกา
<img src=http://www.thaiall.com/php/tstclock1.php3>
รวมคำสั่งสำคัญสำหรับคำนวณเวลา
<img src=http://www.thaiall.com/php/tstclock2.php3>

รวมคำสั่งสำคัญสำหรับระบบ graphic ในการสร้างนาฬิกา
Source code ของ tstclock1.php3
<?php
        header("Content-type: image/png");
        $imagesize = 80;
        $myImage = ImageCreate($imagesize, $imagesize);
        $white = ImageColorAllocate($myImage, 255, 255, 255);
        $red = ImageColorAllocate($myImage, 255, 0, 0);
        ImageFill($myImage, 0, 0, $red);
        Imageinterlace($myImage, 1);
        Imagearc($myImage, 40, 30, 20, 10, 0, 359, $white);
        ImageLine($myImage, 5, 5, 70, 60, $white);
        Imagestring($myImage, 3, 5, 40, ("This กขค."), $white);
        Imagepng($myImage);
        Imagedestroy($myImage);
?>

Click here เพื่อดูผลการทำงานของโปรแกรม tstclock1.php3 ในหน้าต่างใหม่

รวมคำสั่งสำคัญสำหรับคำนวณเวลา
Source code ของ tstclock2.php3
<?php
        header("Content-type: image/png");
        $imSize = 80;
        $today = getdate();
        $hour = $today[hours];
        $minutes = $today[minutes];
        $seconds = $today[seconds];
        if ($hour >= 12)  { $hour  -= 12;  }
        //*	change radians and draw circle
        $myImage = ImageCreate($imSize, $imSize);
        $blue = ImageColorAllocate($myImage, 0, 0, 255);
        $yellow = ImageColorAllocate($myImage, 255, 255, 0);
        ImageFill($myImage, 0, 0, $blue);
        Imageinterlace($myImage, 1);
        //*	draw time character
        if ($minutes < 10)  { $minutes="0$minutes";}
        Imagestring($myImage, 4, 6, $imSize - 20, ($hour . ":" . $minutes), $yellow);
        Imagepng($myImage);
        Imagedestroy($myImage);
?>

Click here เพื่อดูผลการทำงานของโปรแกรม tstclock2.php3 ในหน้าต่างใหม

โปรแกรม php3 ที่ใช้เขียน นาฬิกา
Source code ของ tstclock.php3
<?php
        header("Content-type: image/png");
        $imSize = 80;
        $clockSize = $imSize - 8;
        $today = getdate();
        $hour = $today[hours];
        $minutes = $today[minutes];
        $seconds = $today[seconds];
        if ($hour >= 12)  { $hour  -= 12;  }
        $hourDegress = $hour * 30;
        $hourDegress += $minutes / 2;
        $minDegress = $minutes * 6;
        //*	start at 3:00 or degree 90
        $hourDegress  -= 90;
        if ($hourDegress < 0)  {  $hourDegress += 360;  }
        $minDegress   -=  90;
        if ($minDegress < 0)  {  $minDegress += 360;  }
        //*	change radians and draw circle
        $hourRadians = $hourDegress / 57.295779513082;
        $minRadians = $minDegress / 57.295779513082;
        $myImage = ImageCreate($imSize, $imSize);
        $white = ImageColorAllocate($myImage, 255, 255, 255);
        $blue = ImageColorAllocate($myImage, 0, 0, 255);
        $yellow = ImageColorAllocate($myImage, 255, 255, 0);
        ImageFill($myImage, 0, 0, $blue);
        Imageinterlace($myImage, 1);
        Imagearc($myImage, $imSize/2, $imSize/2, $clockSize, $clockSize, 0, 359, $yellow);
        //*	draw the hour line and minute line
        $hourHandLen = ($clockSize / 2) * 0.6;
        $x2 = $imSize/2 + ($hourHandLen * cos($hourRadians));
        $y2 = $imSize/2 + ($hourHandLen * sin($hourRadians));
        ImageLine($myImage, $imSize/2, $imSize/2, $x2, $y2, $white);
        $minHandLen = ($clockSize / 2) * 0.9;
        $x2 = $imSize/2 + ($minHandLen * cos($minRadians));
        $y2 = $imSize/2 + ($minHandLen * sin($minRadians));
        ImageLine($myImage, $imSize/2, $imSize/2, $x2, $y2, $white);
        //*	draw time character
        if ($minutes < 10)  { $minutes="0$minutes";}
        Imagestring($myImage, 3, 5, $imSize - 15, ($hour . ":" . $minutes), $white);
        Imagepng($myImage);
        Imagedestroy($myImage);
?>

Click here เพื่อดูผลการทำงานของโปรแกรม tstclock.php3 ในหน้าต่างใหม

แบบฝึกหัด
    ให้ทำตามโจทย์ต่อไปนี้
  1. ให้เขียนโปรแกรมตามตัวอย่างข้างบนนี้ ให้ใช้งานได้
  2. ทำนาฬิกาให้น่าดูขึ้น เช่นเติมเลขเข้าไป หรือทำให้นาฬิกาใหญ่ขึ้น
ผู้สนับสนุน + ผู้สนับสนุน
+ รับผู้สนับสนุน

แนะนำเว็บใหม่ : ผลการจัดอันดับ
รักลำปาง : thcity.com : korattown.com : topsiam.com : มหาวิทยาลัยโยนก
ศูนย์สอบ : รวมบทความ : ไอทีในชีวิตประจำวัน : ดาวน์โหลด : yourname@thaiall.com
ติดต่อ ทีมงาน ชาวลำปาง มีฝันเพื่อการศึกษา Tel.08-1992-7223