<?php /** * draw_triangle * * Draw a filled triangle. * * @version 0.4 * @author Contributors at eXorithm * @link /algorithm/view/draw_triangle Listing at eXorithm * @link /algorithm/history/draw_triangle History at eXorithm * @license /home/show/license * * @param array $points This should be a list of six numbers that define the points of the triange (x1, y1, x2, y2, x3, y3) * @param string $color (hex color code) The color of the triangle * @return resource GD image */ function draw_triangle($points=array(0=>'0',1=>'0',2=>'0',3=>'8',4=>'8',5=>'4'),$color='000000') { if (count($points)!=6) { throw new Exception('The points must be an array of 6 integers.'); } $image = image_create_alpha(max($points[0], $points[2], $points[4])+1, max($points[1], $points[3], $points[5])+1); $red = hexdec(substr($color, 0, 2)); $green = hexdec(substr($color, 2, 2)); $blue = hexdec(substr($color, 4, 2)); $color = imagecolorallocatealpha($image, $red, $green, $blue, 0); imagefilledpolygon($image, $points, 3, $color); return $image; } /** * image_create_alpha * * Helper function to create a new blank image with transparency. * * @version 0.1 * @author Contributors at eXorithm * @link /algorithm/view/image_create_alpha Listing at eXorithm * @link /algorithm/history/image_create_alpha History at eXorithm * @license /home/show/license * * @param mixed $width * @param mixed $height * @return resource GD image */ function image_create_alpha($width='',$height='') { // Create a normal image and apply required settings $img = imagecreatetruecolor($width, $height); imagealphablending($img, false); imagesavealpha($img, true); // Apply the transparent background $trans = imagecolorallocatealpha($img, 0, 0, 0, 127); for ($x = 0; $x < $width; $x++) { for ($y = 0; $y < $height; $y++) { imagesetpixel($img, $x, $y, $trans); } } return $img; } ?>