Michael Engel
Erfahrenes Mitglied
Eine Frage an die Mathematiker unter uns, oder Leute mit Mathematik als LK ,)
Ich habe ein Problem mit Bezierkurven die ich gern berechnen würde. Es soll eine Glättung für ein Kurvendiagramm werden. Es funktioniert soweit auch einigermaßen, nur wie in der Grafik zu sehen gibts eben doch noch Kanten ,) vielleicht kann einer ja den Tip geben den mir irgendwie noch fehlt :|
Hier mal der Code :>
Ich habe ein Problem mit Bezierkurven die ich gern berechnen würde. Es soll eine Glättung für ein Kurvendiagramm werden. Es funktioniert soweit auch einigermaßen, nur wie in der Grafik zu sehen gibts eben doch noch Kanten ,) vielleicht kann einer ja den Tip geben den mir irgendwie noch fehlt :|
Hier mal der Code :>
PHP:
<?php
// Werte zur Darstellung
$values = array(1,50,25,100,50,1,88,33,9,18,55,66);
header ("Content-type: image/png");
$im = @imagecreate(600, 100)
$background_color = ImageColorAllocate ($im, 255, 255, 255);
$red = ImageColorAllocate ($im, 233, 14, 91);
$gray = ImageColorAllocate ($im, 210, 210, 210);
$green = imagecolorallocate($im, 100,255,100);
// Horizontale Linien
for($i=0;$i<100;$i+=20){
imageline($im,0,$i,600,$i,$gray);
}
// Eckige Linien
for ($i = 0; $i < count($values); $i++){
$P1 = 100 - ($values[$i] - 1);
$P2 = 100 - ($values[$i+1] - 1);
imageline($im, $i*50,$P1, (($i+1)*50), $P2, $green);
}
// Bezier-Linien
for ($i = 1; $i < count($values); $i+=2){
$P0 = ($values[$i-1]) - 1;
$P1 = $values[$i] - 1;
$P2 = ($values[$i+1]) - 1;
for ($t=0;$t<=1;$t += 0.01){
$p = pow(1-$t,2) * $P0 + 2 * $t * (1-$t) * $P1 + pow($t,2) * $P2;
imagesetpixel($im, ($t * 100 + ($i-1)*50) ,99-$p, $red);
}
}
ImagePNG ($im);
?>