/**** 時刻 2010-8-9* www.ite5e.com* 注: ご質問がございましたら、ご返信ください。 * プログラムの最後に呼び出しテストコードがあります。***/define("DEFAULT_FONT_PATH", "c:/windows/fonts/simhei.ttf");階級的野蛮{ private $_x; private $_y; private $_h; public $_l = 50; private $_w = null; private $_srcPoints = array(); private $_points = array(); __construct($x) 、 $y, $h, $l = 50, $w = null) { $this->_x = $x; $this->_y = $y; $this-> _h = $h; $this->_l = $l; $this->gt;_w = $w; $this->_srcPoints = $this->getSrcPoints(); $ this->_points = $this->getPoints(); } public function getSrcPoints() { return array( array ($this->_x , $this-> ;_y), array($this->_x $this->_l , $this->_y), array($this->_x (1.35*$this->_l), $this->_y-(0.35*$this->_l)), array($this->_x (0.35*$this->y-(0.35*) $ this-> _l))、 配列($ this-> _x、$ this-> _y $ this-> _h)、 配列($ this-> _x $ $ $; _l , $this->gt;_y $this->_h), array($this->_x (1.35*$this->_l), $this->_y $this->_h-( 0.35*$this->_l)) ); } public function getPoints() { $points = array(); foreach($this->_srcPoints as $キー => $val) { $points[] = $val[0]; $points[] = $val[1]; } $points を返します。 } 公共の機能getTopPoints() { return array_slice($this->_points, 0, 8); //顶坐标 } public function getBelowPoints() { return array_merge(array_slice($this->_points, 0, 2), array_slice($this-&g) t;_ポイント、8、4 )、array_slice($this->_points, 2, 2)); //下坐标 } public function getRightSidePoints() { return array_merge(array_slice($this->_points, 2, 2), array_slice($this-&g) t;_ポイント、10、4 )、array_slice($this->_points, 4, 2)); //右侧坐标 } public functiondraw($image, $topColor, $belowColor, $sideColor, $borderColor = null, $type = LEFT) { if (is_null($borderColor) ) { $borderColor = 0xcccccc; } $top_rgb = $this->getRGB($topColor); $below_rgb = $this->getRGB($belowColor); $side_rgb = RGB($sideColor); $top_color = imagecolorallocate($image, $top_rgb[R], $top_rgb[G], $top_rgb[B]); $below_color = imagecolorallocate($image, $below_rgb[R], $below_rgb[G] , $below_rgb[B]); $side_color = imagecolorallocate($image, $side_rgb[R], $side_rgb[G], $side_rgb[B]); imagefilledpolygon($image, $this-> ;getTopPoints(), 4, $top_color); //画顶面 imagepolygon($image, $this->getTopPoints(), 4, $borderColor); //画顶面边線 imagefilledpolygon($image, $this->getBelowPoints(), 4, $below_color); //画下面 imagepolygon($image, $this->getBelowPoints(), 4, $borderColor); //画下面边線 if ($type == LEFT) { imagefilledpolygon($image, $this->getRightSidePoints(), 4, $side_color); //画右面 imagepolygon($image, $this->getRightSidePoints(), 4, $borderColor); //画面边線 } } public function getRGB($color) { $ar = array(); $color = hexdec($color); $ar[ R] = ($color>>16) & 0xff; $ar[G] = ($color>>8) & 0xff; $ar[B] = ($color) & 0xff; return $ar; } } class Bardate { private $_W; private $_H; private $_bgColor = "ffffff"; プライベート $_barHeights = array() ; private $_barTexts = array(); private $_barColors = array(); public $_title; public $_paddingTop = 30; public $_paddingBottom = 100; パブリック $_paddingLeft = 45 ; public $_paddingRight = 2; public $_barL = 50; public $image; http://www.bkjia.com/PHPjc/486183.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/486183.html技術記事 ?php /*** * 時刻 2010 年 8 月 9 日 * www.ite5e.com * 注: ご質問がございましたら、ご返信ください。 ※プログラムの最後に呼び出しテストコードがあります。 ***/define("DEFAULT_FONT_PATH", "c:/windows/fonts/...