Wielkie dzięki za podpowiedzi
Trochę nad tym posiedziałem próbując zrobić coś z tym skryptem:
CODE
<?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);
?>
Niestety, skrypt niezbyt poprawnie działa, linie się zawijają i ogólnie dość wariacko zachowują.
Jednakże spróbuję tej klasy, mam nadzieję, że będzie to coś innego, działającego
A na marginesie: przypominam przezornie, że linie mają być generowane dynamicznie, ew. losowo.