Jump to content
php.lv forumi

imagedashedline nezīmē, ko darīt?


Delfins

Recommended Posts

JustToKnowHow (especially sliņķiem!):

 

It ka jau manuālī ir rakstīts aptuvens risinājums, bet lai būtu 100% aizvietojums imagedashedline, tad risinājums ir šāds:

 

1.) taisam img ar imagecreatetruecolor()

2.)

function mydashedline($img,$x1,$y1,$x2,$y2,$color)
{
  $transparentColor = imagecolorallocatealpha($this->outputImg,0,0,0,127);
					$arr = Array($color,$color,$color,$color,$transparentColor,$transparentColor,$transparentColor,$transparentColor);
					imagesetstyle($img,$arr);
					imageline($img,$x1,$y1,$x2,$y2,IMG_COLOR_STYLED);
}

 

PS: vienkārši pats saskāros ar šo problēmu tikko, un pusdienu meklējot kļūdu algoritmā kāpēc tad nezīmē (nu f-jai tāc būtu jāzīme :)), ķeros aiz pēdējās salmiņads - google, kas mani aizvilka uz RTFM-komentiem...

 

PPS: pluss ir tāds, ka var definēts savu patternu Dashed līnijai

Link to comment
Share on other sites

noteiktos leņķos... Izpildi kodu un pārliecinies pats...

 

<?php

function drawCircle($img, $radius, $origo_x, $origo_y, $pointColor)
{
$lastx = 0; $lasty = 0;
for ($i=0;$i<=360;$i += 30)
{
	$x = $origo_x + ($radius * sin(deg2rad($i)));
	$y = $origo_y - ($radius * cos(deg2rad($i)));
	if ($lastx)
	{
		imagedashedline($img, $x, $y, $lastx, $lasty, $pointColor);
	}
	$lastx = $x;
	$lasty = $y;
}
}

$img = imagecreate(400,400);
$bgColor = imagecolorallocate($img,100,100,100);
$blueColor = imagecolorallocate($img,0xFF,0xFF,0xFF);

drawCircle($img,150,200,200,$blueColor);

header("Content-Type: image/png");
imagepng($img);

?>

Link to comment
Share on other sites

×
×
  • Create New...