• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

geschwungene linie

Tectum

New member
hy Leute,

finde leider nix im manual, ich muss mit php eine kleine geschwungene linie zeichnen, eine welle sozusagen. hat da jemand eine idee, mit imageline() scheints wohl nicht zu gehn.
 
Man kann Pixel auch einzeln setzen (imageSetPixel) - da muss man nicht approximieren (wobei's natürlich dadurch schneller wird...).
 
so hab 2 x 45grad kreise gespiegelt verbunden, aber sieht pixelig aus, kann man da irgendwas mit fade machen, dass das n bisschen verwischter, bzw fließender aussieht?
 
ist das falsch eingebunden, geht irgendwie nicht
PHP:
$color		= $_GET['color'];

$r			= hexdec(substr($color, 0, 2));
$g			= hexdec(substr($color, 2, 2));
$b			= hexdec(substr($color, 4, 2));

$bild 		= imagecreate(70, 50);
$bg 		= imagecolorallocate($bild, 255, 255, 255);

imagecolortransparent($bild, $bg);

$farbe 	= imagecolorallocate($bild, $r, $g, $b);

imageantialias($bild, true);
 
Code:
<?php
$im = imageCreateTruecolor(300, 201);
$c = imageColorAllocate($im, 255, 255, 255);
imageFill($im, 0, 0, $c);
imageSaveAlpha($im, true);
imageAlphaBlending($im, false);

for ($i = 0; $i < 300; $i++){
	$y = 100 - sin($i/300 * 2*pi())*100;
	$lo = floor($y);
	$prc = $y - $lo;
	$c = imageColorAllocateAlpha($im, 0, 0, 0, 0x7F * $prc);
	imageSetPixel($im, $i, $y, $c);
	$c = imageColorAllocateAlpha($im, 0, 0, 0, 0x7F * (1 - $prc));
	imageSetPixel($im, $i, $y + 1, $c);
}

header("Content-Type: image/png");
imagePNG($im);

?>
 
danke kkapsner werd ich gleich mal testen, häng aber grade noch am antialising, was ich hier gemacht habe ändert nix, sieht wie vorher aus:
PHP:
$color		= $_GET['color'];

$r			= hexdec(substr($color, 0, 2));
$g			= hexdec(substr($color, 2, 2));
$b			= hexdec(substr($color, 4, 2));

$revers_r	= (255 - $r);
$revers_g	= (255 - $g);
$revers_b	= (255 - $b);

$bild 		= imagecreatetruecolor(70, 50);

imageantialias($bild, true);

$bg 		= imagecolorallocate($bild, $revers_r, $revers_g, $revers_b);

imagecolortransparent($bild, $bg);

$farbe 	= imagecolorallocate($bild, $r, $g, $b);

ich zeichne mit imageFilledPolygon funktioniert das antialising damit nicht ev?
 
Hatte zwar Mathe LK aber Geometrie war nie mein Ding ;) was nehm ich denn für eine Funktion?
Werde das mit dem Polygon mal testen, gebe dann feedback!
 
Als Mathe LKler sollten dir da eigentlich ein paar einfallen - und mit Geometrie hat das jetzt auch nur periphär etwas zu tun...

PS: so z.B.
Code:
	$y = 100 + cos($i/300 * 2/2*pi())*100;
 
super, denau der graph den ich brauche, weder bei deinem script aber nicht schlau wo ich die linienstärke änder, hab überall rumgefummelt, aber geht nur alles kaputt :)
 
wo ich die linienstärke änder
Wenn man nur Pixel setzt, dann gibt es keine Linienstärke. Du musst entsprechend mehr oder weniger Pixel in der richtigen Richtung setzen (im Idealfall rechter Winkel zur Strichrichtung, wobei das bei engeren Kurven außen zu Lücken und innen zu Doppelbelegungen führen könnte - ist also nicht ganz trivial).
 
ja sowas hab ich mir auch überlegt, den graphen um 1pixel nach recht verschoben, sieht aber total unsauber aus
 
Zurück
Oben