Artykuły na każdy temat

[PHP][GD] Zegar binarny

Dodano 15.10.2013r. o 04:18
Dla tych, co nie wiedzą jak się odczytuję godzinę z takiego zegara polecam notatkę w tym miejscu lub na wiki. Oczywiście nie jest on dynamiczny, bo wykorzystana technologia nie pozwala na to natomiast stworzenie wersji JavaScript nie powinno przysporzyć większych problemów. Pomijając fakt, że po sieci latają gotowe przykłady. Swoją drogą zegar jest efektem ostatnich zabaw z biblioteką GD jak i elementem większej układanki.
Kod:
<?php
$config = array('border' => 60'size' => 40'space' => 15);

$size[0] = ($config['border'] * 2) + ($config['size']) + ($config['space']) + 1;
$size[1] = $config['border'] + ($config['size']) + ($config['space']) + 1;

$time date('His');
$elements = array(243434);

for($h 0$h 6; ++$h)
{
 $binary_time[$h] = array_reverse(str_split(decbin($time[$h])));
}

$c c();
$im imagecreate($size[0], ($size[1] + $config['border']));
$background imagecolorallocate($im255255255);
$color imagecolorallocate($im$c[0], $c[1], $c[2]);

for($x[0] = 0$x[0] < 6; ++$x[0])
{
 $x[1] = $config['border'] + ($x[0] * $config['size']) + ($x[0] * $config['space']);
 $x[2] = $x[1] + $config['size'];

 for($y[0] = ($elements[$x[0]] - 1); $y[0] >= 0; --$y[0])
 {
  $y[1] = $size[1] - ($y[0] * $config['size']) - ($y[0] * $config['space']) - 1;
  $y[2] = $y[1] - $config['size'];

  if($binary_time[$x[0]][$y[0]])
  {
   imagefilledrectangle($im$x[1], $y[1], $x[2], $y[2], $color);
  }
  else
  {
   imagerectangle($im$x[1], $y[1], $x[2], $y[2], $color);
  }
 }
}

header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);

// Auxiliary functions
function c()
{
 // c() like get_color()?
 $c = array(20500);

 if(isset($_GET['r']) && isset($_GET['g']) && isset($_GET['b']))
 {
  $r v($_GET['r']);
  $g v($_GET['g']);
  $b v($_GET['b']);

  if(is_int($r) && is_int($g) && is_int($b))
  {
   $c = array($r$g$b);
  }
 }

 return $c;
}

function v($c)
{
 // v() like validation()?
 $c = (int)$c;

 return ($c || $c 255 false $c);
}
?>
Wynikiem tego kodu jest coś takiego:
binary-clock.php

Komentarze

Brak komentarzy

Dodaj komentarz

Zostaw komentarz jeżeli możesz! Nie bądź przysłowiowym botem! Nie bądź obojętny! Ciebie to nic nie kosztuje, a mi sprawi uśmiech na twarzy.
Zezwolono używać: BBCode
Zabroniono używać:
znaczników HTML

(Wymagany)

(Wymagany, niepublikowany)

(Nie wymagana)

Token:

Obrazek dla bota

(Przepisz tylko cyfry!)

(Wymagana)