note 38742 added to function.imageline

From: Date: Mon, 05 Jan 2004 17:26:40 +0000
Subject: note 38742 added to function.imageline
Groups: php.notes 
Request: Send a blank email to php-notes+get-62960@lists.php.net to get a copy of this message
an algorithm to draw a bezier spline <?php $segmentos =30; $x=array(0,10,80,30); $y=array(0,10,40,50); function bezier($p,$steps){ $t = 1 / $steps; $temp = $t * $t; $ret = array(); $f = $p[0]; $fd = 3 * ($p[1] - $p[0]) * $t; $fdd_per_2=3*($p[0]-2*$p[1]+$p[2])*$temp; $fddd_per_2=3*(3*($p[1]-$p[2])+$p[3]-$p[0])*$temp*$t; $fddd = $fddd_per_2 + $fddd_per_2; $fdd = $fdd_per_2 + $fdd_per_2; $fddd_per_6 = $fddd_per_2 * (1.0 / 3); for ($loop=0; $loop<$steps; $loop++) { array_push($ret,$f); $f = $f + $fd + $fdd_per_2 + $fddd_per_6; $fd = $fd + $fdd + $fddd_per_2; $fdd = $fdd + $fddd; $fdd_per_2 = $fdd_per_2 + $fddd_per_2; } return $ret; } $by = bezier($y,$segmentos); $bx = bezier($x,$segmentos); header ("Content-type: image/jpeg"); $tam = 200; $im = imagecreate($tam,$tam); $background_color = imagecolorallocate ($im, 200, 200, 200); $tc = imagecolorallocate ($im, 233, 14, 91); for($i=0;$i<$segmentos-1;$i++) imageline($im,$bx[$i],$tam-$by[$i],$bx[$i+1],$tam-$by[$i+1],$tc); imagejpeg($im); imagedestroy($im); ?> ---- Manual Page -- http://www.php.net/manual/en/function.imageline.php Edit -- http://master.php.net/manage/user-notes.php?action=edit+38742 Delete -- http://master.php.net/manage/user-notes.php?action=delete+38742&report=yes Reject -- http://master.php.net/manage/user-notes.php?action=reject+38742&report=yes Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#62960) next »