Salve,
mi piacerebbe che qualche esperto mi aiutasse in questo dilemma
ho un file php che mi crea un immagine nell'esempio sotto un asterisco bianco ed uno rosso:
Codice PHP:
<?php
include 'config.php';
session_start();
//*****************************************************************************
//Asterisco Bianco
//*****************************************************************************
for ($i = 0; $i <='11'; $i++)
{
$TxtLayer = "LAYER1";
$TmpX1 = '4';
$TmpY1 = '4';
$TmpX2 = $TmpX1 + ('5' * cos(pi()/6*$i));
$TmpY2 = $TmpY1 + ('5' * sin(pi()/6*$i));
$arryLinee[] = array($TmpX1, $TmpY1, $TmpX2, $TmpY2, $TxtLayer);
}
//*****************************************************************************
//Asterisco Rosso
//*****************************************************************************
for ($i = 0; $i <='11'; $i++)
{
$TxtLayer = "ASSE";
$TmpX1 = '6';
$TmpY1 = '6';
$TmpX2 = $TmpX1 + ('5' * cos(pi()/6*$i));
$TmpY2 = $TmpY1 + ('5' * sin(pi()/6*$i));
//$arryLinee[] = array($TmpX1, $TmpY1, $TmpX2, $TmpY2, $TxtLayer);
$arryLinee[] = array($TmpX2, $TmpY2, $TmpX1, $TmpY1, $TxtLayer);
}
//ECHO "<BR>";
//*****************************************************************************
//Calcolo dimensione e scala disegno
//*****************************************************************************
$minX = 0;
$minY = 0;
$MasX = 0;
$MasY = 0;
for ($i = 0; $i <= count($arryLinee)-1; $i++)
{
//$arryLinee[] = array($TmpX1, $TmpY1, $TmpX2, $TmpY2, $TxtLayer);
//Ricerca minimo
if ($arryLinee[$i][0] < $minX) $minX = $arryLinee[$i][0];
if ($arryLinee[$i][1] < $minY) $minY = $arryLinee[$i][1];
if ($arryLinee[$i][2] < $minX) $minX = $arryLinee[$i][2];
if ($arryLinee[$i][3] < $minY) $minY = $arryLinee[$i][3];
//Ricerca massimo
if ($arryLinee[$i][0] > $MasX) $MasX = $arryLinee[$i][0] * 1.25;
if ($arryLinee[$i][1] > $MasY) $MasY = $arryLinee[$i][1] * 1.25;
if ($arryLinee[$i][2] > $MasX) $MasX = $arryLinee[$i][2] * 1.25;
if ($arryLinee[$i][3] > $MasY) $MasY = $arryLinee[$i][3] * 1.25;
}
//Calcolo dimensione immagine e fattore di scala
if (($MasX - $minX) > ($MasY - $minY))
{
$DimMAX = $MasX - $minX;
$DimImg = 100;
$Scala = $DimImg / $DimMAX * 5.333;
}
else{
$DimMAX = ($MasY - $minY);
$DimImg = 140;
$Scala = $DimImg / $DimMAX * 3;
}
//*****************************************************************************
//Rapporto 16:9
//*****************************************************************************
$DimX = 5.333 * $DimImg;
$DimY = 3 * $DimImg;
//*****************************************************************************
//Creo immagine
//*****************************************************************************
$img = @imagecreatetruecolor($DimX, $DimY)
or die("Cannot Initialize new GD image stream");
//*****************************************************************************
//Predispongo i colori
//*****************************************************************************
$white = imagecolorallocate($img, 255, 255, 255);
$red = imagecolorallocate($img, 255, 0, 0);
$grey90 = imagecolorallocate($img, 25, 25, 25);
imagefill($img,0,0,$grey90); //Coloro lo sfondo immagine
//*****************************************************************************
//Disegno le linee
//*****************************************************************************
for ($i = 0; $i <= count($arryLinee)-1; $i++)
{
switch ($arryLinee[$i][4])
{
case "ASSE":
$TmpLayer = $red; break;
case "LAYER1":
$TmpLayer = $white; break;
}
//bool imageline (resource image, int x1, int y1, int x2, int y2, int color)
//bool imagedashedline (resource image, int x1, int y1, int x2, int y2, int color)
imageline($img, ($arryLinee[$i][0]*$Scala), $DimY-($arryLinee[$i][1]*$Scala),
($arryLinee[$i][2]*$Scala), $DimY-($arryLinee[$i][3]*$Scala), $TmpLayer);
}
//*****************************************************************************
// output image in the browser
//*****************************************************************************
header("Content-type: image/png");
imagepng($img);
//*****************************************************************************
// free memory
//*****************************************************************************
imagedestroy($img);
?>
Il risultato di questo script è questo

ora se uslo il comando bool imagedashedline (resource image, int x1, int y1, int x2, int y2, int color) per le linee di colore rosso come il codice allegato
Codice PHP:
//*****************************************************************************
//Disegno le linee
//*****************************************************************************
for ($i = 0; $i <= count($arryLinee)-1; $i++)
{
switch ($arryLinee[$i][4])
{
case "ASSE":
$TmpLayer = $red; break;
case "LAYER1":
$TmpLayer = $white; break;
}
//bool imageline (resource image, int x1, int y1, int x2, int y2, int color)
//bool imagedashedline (resource image, int x1, int y1, int x2, int y2, int color)
if ($TmpLayer == $red)
{
imagedashedline($img, ($arryLinee[$i][0]*$Scala), $DimY-($arryLinee[$i][1]*$Scala),
($arryLinee[$i][2]*$Scala), $DimY-($arryLinee[$i][3]*$Scala), $TmpLayer);
}
else
{
imageline($img, ($arryLinee[$i][0]*$Scala), $DimY-($arryLinee[$i][1]*$Scala),
($arryLinee[$i][2]*$Scala), $DimY-($arryLinee[$i][3]*$Scala), $TmpLayer);
}
}
//*****************************************************************************
mi da come risultato questo :

come vedete alcune righe rosse ci sono e sono tratteggiate altre invece mancano del tutto

Qualcuno mi può dare una mano 