Source for file AnalogClock.class.php
Documentation is available at AnalogClock.class.php
* @author Takács Ákos (Rimelek), programmer [at] rimelek [dot] hu
* @copyright Copyright (C) 2009, Takács Ákos
require_once dirname(__FILE__
).
"/../AObject.class.php";
require_once dirname(__FILE__
).
"/../interfaces/IObject.class.php";
* Ellipszis iterátor importálása
require_once dirname(__FILE__
).
"/../iterators/MultiEllipseIterator.class.php";
* Egy analóg órát lehet létrehozni vele. A kinézetét a többi objektumhoz hasonlóan módosítani lehet.
* {@example ../examples/analogclock.php}
* @property $hourHandColor
* @property $minuteHandColor
* @property $secondHandColor
* @property $segmentationColor
* A megjelenített időpont elemei
* <li>hour12: Az óra 12 órás formátumban</li>
* <li>hour24: Az óra 24 órás formátumban</li>
* <li>second: másodperc</li>
* <li>am_pm: Délelőtt, vagy délután</li>
protected $time =
array();
* Óramutató aránya a sugárhoz képest százalékban
* Percmutató aránya a sugárhoz képest százalékban
* Másodpercmutató aránya a sugárhoz képest százalékban
* @param int $radius Az óra sugara
* @param int $time A megjelenítendő időpont (timestamp). Elhagyása esetén az aktuális idő
$time =
($time !==
null) ?
$time :
time();
$this->time['hour12'] =
date("h",$time);
$this->time['hour24'] =
date("H",$time);
$this->time['minute'] =
date("i",$time);
$this->time['second'] =
date("s",$time);
$this->colors['borderColor'] =
array(0,0,1); //óralap szegélye
$this->colors['color'] =
array(255,255,254); //óralap színe
$this->colors['backGround'] =
array(255,255,255); //háttér
$this->colors['hourHandColor'] =
array(200,10,60); //óra mutató színe
$this->colors['minuteHandColor'] =
array(100,200,250); //perc mutató színe
$this->colors['secondHandColor'] =
array(20,200,30); //másodperc mutató színe
$this->colors['segmentationColor'] =
array(0,0,0); //Az órán a beosztások, és a középont színe
* Tulajdonságok lekérdezésének szabályozása
public function __get($var)
return parent::__get($var);
* Tulajdonságok beállításának szabályozása
public function __set($var,$value)
if (isset
($this->colors[$var])) $this->colors[$var] =
$value;
else parent::__set($var,$value);
foreach($this->colors as $key =>
$value)
$this->$key =
$this->createColor($value[0],$value[1],$value[2]);
* Az óralap nem mozgó elemeinek kirajzolása
protected function dial()
//Az óralapot határoló kör létrehozása
//Az óra, és perc beosztások kirajzolása
//A 'délután' (PM), vagy 'délelőtt' (AM) jelzése
* Óra-, és percosztások kirajzolása
//4 elipszis ( tömött karikák,vonalak belső vége, vonalak külső vége, számok )
// középpontjának x, és y koordinátája
//a fenti 4 elipszis szélessége , és magassága
//Iterátor létrehozása több elipszis koordinátáival
$iterator->start = -
60; //iteráció kezdete fokban
$iterator->end =
299; //iteráció vége
$iterator->add =
6; //Lépésköz
foreach($iterator as $k=>
$position) {
if(($iterator->_i %
30)){
ImageFilledArc($this->source, round($position['x'][0]), round($position['y'][0]), 3,3, 0, 360, $this->segmentationColor, IMG_ARC_PIE);
imageLine($this->source, round($position['x'][1]), round($position['y'][1]), round($position['x'][2]), round($position['y'][2]), $this->segmentationColor);
//Az óra osztások mellett az óra száma
ImageString($this->source,2,round($position['x'][3])-
3,round($position['y'][3])-
5,$hour,$this->segmentationColor);
protected function hands()
* @param double $arany Óramutató aránya a sugárhoz képest
* @param double $arany Percmutató aránya a sugárhoz képest
//a perc mutató poziciója
* Másodpercmutató létrehozása
* @param double $arany Másodpercmutató aránya a sugárhoz képest
//a másodperc poziciójának számítása
* A teljes óra kép létrehozáa
//egyező háttér és szegélyszín esetén új keretszín választása
//óralap színének beállítása
//a középpontban egy tömött karika
Documentation generated on Tue, 09 Feb 2010 01:17:46 +0100 by phpDocumentor 1.4.1