Inizializzazione
This commit is contained in:
92
jpgraph-3.5.0b1/src/Examples/fieldscatterex1.php
Normal file
92
jpgraph-3.5.0b1/src/Examples/fieldscatterex1.php
Normal file
@@ -0,0 +1,92 @@
|
||||
<?php // content="text/plain; charset=utf-8"
|
||||
require_once ('jpgraph/jpgraph.php');
|
||||
require_once ('jpgraph/jpgraph_scatter.php');
|
||||
|
||||
$polex = 6;
|
||||
$poley = 40;
|
||||
|
||||
function FldCallback($x,$y,$a) {
|
||||
GLOBAL $polex, $poley;
|
||||
$maxr = 3000;
|
||||
|
||||
// Size and arrow size is constant
|
||||
$size="";
|
||||
$arrowsize="";
|
||||
|
||||
// Since we have different scales we need the data points
|
||||
// to be of the same magnitude to give it a distance
|
||||
// interpretation.
|
||||
$x *= 10;
|
||||
|
||||
// Colors gets colder the further out we go from the center
|
||||
$r = ($x-$polex*10)*($x-$polex*10)+($y-$poley)*($y-$poley);
|
||||
$f = $r/$maxr;
|
||||
if( $f > 1 ) $f=1;
|
||||
$red = floor((1-$f)*255);
|
||||
$blue = floor($f*255);
|
||||
$color = array($red,0,$blue);
|
||||
//echo "x=$x, y=$y, blue=$blue, red=$red<br>";
|
||||
return array($color,$size,$arrowsize);
|
||||
}
|
||||
|
||||
// Create data for a simulated pseudo-magnetic radient field
|
||||
$datax = array();
|
||||
$datay = array();
|
||||
$angle = array();
|
||||
for($x=1; $x < 10; ++$x ) {
|
||||
for($y=10; $y<100; $y += 10) {
|
||||
$a = -1;
|
||||
if( $x==$polex && $y==$poley ) continue;
|
||||
if( $x==$polex ) {
|
||||
if( $y > $poley ) $a=90;
|
||||
else $a = 270;
|
||||
}
|
||||
if( $y==$poley ) {
|
||||
if( $x > $polex ) $a=0;
|
||||
else $a=180;
|
||||
}
|
||||
if( $a == -1 ) {
|
||||
$d1 = $y-$poley;
|
||||
$d2 = ($polex-$x)*20;
|
||||
if( $y < $poley ) $d2 *= -1;
|
||||
$h = sqrt($d1*$d1+$d2*$d2);
|
||||
$t = -$d2/$h;
|
||||
$ac = acos($t);
|
||||
if( $y < $poley ) $ac += M_PI;
|
||||
$a = $ac * 180/M_PI;
|
||||
}
|
||||
$datax[] = $x;
|
||||
$datay[] = $y;
|
||||
$angle[] = $a;
|
||||
}
|
||||
}
|
||||
|
||||
// Setup the graph
|
||||
$graph = new Graph(300,200);
|
||||
$graph->SetScale("intlin",0,100,0,10);
|
||||
$graph->SetMarginColor('lightblue');
|
||||
|
||||
|
||||
// ..and titles
|
||||
$graph->title->Set("Field plot");
|
||||
|
||||
// Setup the field plot
|
||||
$fp = new FieldPlot($datay,$datax,$angle);
|
||||
|
||||
// Setup formatting callback
|
||||
$fp->SetCallback('FldCallback');
|
||||
|
||||
// First size argument is length (in pixels of arrow)
|
||||
// Second size argument is roughly size of arrow. Arrow size is specified as
|
||||
// an integer in the range [0,9]
|
||||
$fp->arrow->SetSize(20,2);
|
||||
$fp->arrow->SetColor('navy');
|
||||
|
||||
$graph->Add($fp);
|
||||
|
||||
// .. and output
|
||||
$graph->Stroke();
|
||||
|
||||
?>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user