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
"; 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->clearTheme(); $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(); ?>