Utilizzo di cookies
Script GD libray con PHP Modelli Creare immagine Colore e trasparenza Disegnare Pennelli Misurare Filtri Testo Copy Salvare Miscellanea
GD library con PHP
Perimetri e eree
Poligoni e circonferenza


e-book
cartaceo
Veritce A Veritce B Veritce C Veritce D Veritce E
x
y
x
y
x
y
x
y
x
y
Raggio :
Cambiare i valori e premere
piano cartesiano, misurazioni area poligoni linee circonferenze Lo script calcola:
per un poligono su piano cartesiano
Lunghezza dei lati
Punti medi di questi
Perimetro
Area con la formula di Gauss. 
La formula dell'area di Gauss è un algoritmo matematico utilizzato per determinare l'area di un poligono i cui vertici siano descritti in coordinate cartesiane.
Il risultato si ottiene moltiplicando in croce le coordinate corrispondenti seguendo uno schema simile a quello dei lacci della scarpa.La formula dell'area area è valida per qualsiasi figurta poiligonale.Si può verificare dividendo il poligono in triangoli.
Per un cerchio calcola: Perimetro e  Area



<?php 
// vertici default del poligono
$AX = isset($_POST['AX']) ? $_POST['AX'] : 100;    $AY = isset($_POST['AY']) ? $_POST['AY'] : 200; 
$BX = isset($_POST['BX']) ? $_POST['BX'] : 400;    $BY = isset($_POST['BY']) ? $_POST['BY'] : 200; 
$CX = isset($_POST['CX']) ? $_POST['CX'] : 200;    $CY = isset($_POST['CY']) ? $_POST['CY'] : 300; 
$DX = isset($_POST['DX']) ? $_POST['DX'] : 250;    $DY = isset($_POST['DY']) ? $_POST['DY'] : 300; 
$EX = isset($_POST['EX']) ? $_POST['EX'] : 50;      $EY = isset($_POST['EY']) ? $_POST['EY'] : 500; 


$Raggio = isset($_POST['Raggio']) ? $_POST['Raggio'] : 100; //echo"<br>Raggio = $Raggio";


$Immagine = imagecreatetruecolor(700,600);


$Colore = array();
$Colore[0] = imagecolorallocate($Immagine,255,255,255);
$Colore[1] = imagecolorallocate($Immagine,255,0,0); 
$Colore[2] = imagecolorallocate($Immagine,0,255,0); 
$Colore[3] = imagecolorallocate($Immagine,255,255,0); 
$Colore[4] = imagecolorallocate($Immagine,0,255,255);
$Colore[5] = imagecolorallocate($Immagine,255,0,255);


$Poligono = array($AX, $AY, $BX, $BY, $CX, $CY, $DX, $DY, $EX, $EY  ); // vertici poligono

imagepolygon($Immagine, $Poligono, count($Poligono)/2, $Colore[0]); // disegna poligono


$C=0; // segmenti colorati sul poligono
for($i= 0; $i < count($Poligono)-2 ; $i+=2){
imageline ($Immagine , $Poligono[$i]  , $Poligono[$i+1] , $Poligono[$i+2]  , $Poligono[$i+3]  , $Colore[$C] );
imagefilledellipse ($Immagine , $Poligono[$i], $Poligono[$i+1],  10 , 10 , $Colore[$C] ); // 5 vertici
$C++;}
imageline ($Immagine , $Poligono[$i]  , $Poligono[$i+1] , $Poligono[0]  , $Poligono[1]  , $Colore[$C] ); // chiude il poligono
imagefilledellipse ($Immagine , $Poligono[$i], $Poligono[$i+1],  10 , 10 , $Colore[$C] ); // vertice 5


function DisegnaPuntiMediConEtichette($Immagine,$X,$Y,$EichSegm,$LunghSegm,$py,$Colore)
{
$Blu = imagecolorallocate($Immagine,0,0,255);// blu
imagefilledellipse ($Immagine , $X , $Y ,7 , 7 , $Blu );
imagestring ($Immagine , 5 , 10 , $py , "LunghSegm$EichSegm = $LunghSegm : punto medio X=$X , Y=$Y" , $Colore );
}




// punti medi dei segmenti del poligono
$LunghSegmA = sqrt(bcpow($AX-$BX,2) + bcpow($AY-$BY,2));
$PuntoMedioX = ($AX+$BX)/2; $PuntoMedioY = ($AY+$BY)/2;
$X= $PuntoMedioX; $Y = $PuntoMedioY; 
$EichSegm = "A"; $LunghSegm = $LunghSegmA;
DisegnaPuntiMediConEtichette($Immagine,$X,$Y,$EichSegm,$LunghSegm,5,$Colore[0]);


$LunghSegmB = sqrt(bcpow($BX-$CX,2) + bcpow($BY-$CY,2));
$PuntoMedioX = ($BX+$CX)/2; $PuntoMedioY = ($BY+$CY)/2; 
$EichSegm = "B"; $LunghSegm = $LunghSegmB;
DisegnaPuntiMediConEtichette($Immagine,$PuntoMedioX,$PuntoMedioY,$EichSegm,$LunghSegm,20,$Colore[1]);


$LunghSegmC = sqrt(bcpow($CX-$DX,2) + bcpow($CY-$DY,2));
$PuntoMedioX = ($CX+$DX)/2; $PuntoMedioY = ($CY+$DY)/2;
$EichSegm = "C"; $LunghSegm = $LunghSegmC;
DisegnaPuntiMediConEtichette($Immagine,$PuntoMedioX,$PuntoMedioY,$EichSegm,$LunghSegm,35,$Colore[2]);


$LunghSegmD = sqrt(bcpow($DX-$EX,2) + bcpow($DY-$EY,2));
$PuntoMedioX = ($DX+$EX)/2; $PuntoMedioY = ($DY+$EY)/2;
$EichSegm = "D"; $LunghSegm = $LunghSegmD;
DisegnaPuntiMediConEtichette($Immagine,$PuntoMedioX,$PuntoMedioY,$EichSegm,$LunghSegm,50,$Colore[3]);


$LunghSegmE = sqrt(bcpow($EX-$AX,2) + bcpow($EY-$AY,2));
$PuntoMedioX = ($EX+$AX)/2; $PuntoMedioY = ($EY+$AY)/2;
$EichSegm = "E"; $LunghSegm = $LunghSegmE;
DisegnaPuntiMediConEtichette($Immagine,$PuntoMedioX,$PuntoMedioY,$EichSegm,$LunghSegm,65,$Colore[4]);


// perimetro del poligono
$Perimetro = $LunghSegmA + $LunghSegmB + $LunghSegmC + $LunghSegmD + $LunghSegmE;
imagestring ($Immagine , 5 , 10 , 80 , "Perimetro = $Perimetro" , $Colore[0] );


// Area del poligono - l'ultima coppia xy va collegata con la prima
$L1 = ($AX * $BY) + ($BX * $CY) + ($CX * $DY + $DX * $AY);
$L2 = ($AY * $BX) + ($BY * $CX) + ($CY * $DX + $DY * $AX);
$Area = abs($L1 - $L2) / 2;
imagestring ($Immagine , 5 , 10 , 95 , "Area = $Area" , $Colore[0] );


// loop in radianti
$Cx = 500; $Cy = 400; // centro della circonferenza
for($i = 0; $i < 2* M_PI; $i+=.01) 
{
$x = $Cx + $Raggio * cos($i);  // releva punto x coordinate cartesiane
      $y = $Cy + $Raggio * sin($i);  // releva punto y coordinate cartesiane 
imagesetpixel($Immagine, $x, $y, $Colore[1]);  // disegna la circonferenza con imagesetpixel()
imageline ($Immagine , $Cx , $Cy, $Cx + $Raggio , $Cy , $Colore[0] ); // disegna il raggio
}


 $area = M_PI * $Raggio *$Raggio;
 $perimetro = 2* M_PI * $Raggio;


imagestring ($Immagine , 5 , 10 , 120 , "CIRCONFERENZA: area = $area : perimetro = $perimetro" , $Colore[1] );




imagepng($Immagine, PATHPUBLIC."NomeFile.png" ); // salva
imagedestroy($Immagine); // libera memoria
?>