Sapendo che le misure in radianti degli angoli sono direttamente proporzionali alle rispettive misure in gradi, possiamo in ogni caso impostare la seguente proporzione dove:
x indica la misura in radianti dell'angolog° indica la misura in gradi dello stesso angolo
M_PI indica la misura in radianti dell'angolo piatto180° indica la misura in gradi dell'angolo piatto
Radianti:g°=M_PI:180°
Ad esempio, per trovare la misura in radianti di un angolo di 12° possimo impostare la proporzionex : 12° = M_PI : 180°da cui ricaviamo x= (M_PI * 12) / 180
se gradi = 90
ricaviamo x= (M_PI * 90) / 180
<?php
$ArcoStart = isset($_POST['ArcoStart']) ? $_POST['ArcoStart'] : 30;
$ArcoEnd = isset($_POST['ArcoEnd']) ? $_POST['ArcoEnd'] : 90;
$Larghezza = 400;$Altezza = 400; // dimensioni immaigne
$Immagine =
imagecreatetruecolor($Larghezza,$Altezza);// crea immaigne
$Cx = $Larghezza * .5; $Cy= $Altezza * .5; // centro immagine
$Raggio = $Larghezza * .5;
$Bianco =
imagecolorallocate($Immagine,255,255,255);
$Rosso =
imagecolorallocate($Immagine,255,0,0);
$Verde =
imagecolorallocate($Immagine,0,255,0);
imagefilledarc($Immagine, $Cx, $Cy, $Raggio, $Raggio, $ArcoStart, $ArcoEnd, $Rosso,IMG_ARC_PIE);
$Radianti = (M_PI * $ArcoEnd) / 180; // calcola radianti
for($i = 0; $i<=359; $i+=15)
{
// seno e coseno in radianti
$sin = sin(deg2rad($i-90)); $cos = cos(deg2rad($i-90));
$RadX = $Cx + round($cos*(0) - $sin*($Raggio-65))-10; // posizione X sul piano cartesiano
$RadY = $Cy+ round($sin*(0) + $cos*($Raggio-65)); // posizione Y sul piano cartesiano
imagestring($Immagine,5,$RadX ,$RadY,$i,$Verde);
imagefilledarc($Immagine, $Cx, $Cy, $Raggio, $Raggio, $ArcoStart, $i, $Bianco,IMG_ARC_EDGED+IMG_ARC_NOFILL); // disegna arco
}
imagestring($Immagine,5,20,15,'gradi =' .abs(($ArcoStart-$ArcoEnd)),$Verde);
imagestring($Immagine,5,20,30,'radianti = '.$Radianti,$Verde);
imagepng($Immagine,"NomeFile.png"); // salva immagine
imagedestroy($Immagine); // libera memoria
?>