Subversion-Projekte lars-tiefland.php_share

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<code><font color="#000000">
2
<font color="#0000BB">&lt;?php<br /></font><font color="#007700">include&nbsp;(</font><font color="#DD0000">"../jpgraph.php"</font><font color="#007700">);<br />include&nbsp;(</font><font color="#DD0000">"../jpgraph_scatter.php"</font><font color="#007700">);<br /><br /></font><font color="#0000BB">$polex&nbsp;</font><font color="#007700">=&nbsp;</font><font color="#0000BB">6</font><font color="#007700">;<br /></font><font color="#0000BB">$poley&nbsp;</font><font color="#007700">=&nbsp;</font><font color="#0000BB">40</font><font color="#007700">;<br /><br />function&nbsp;</font><font color="#0000BB">FldCallback</font><font color="#007700">(</font><font color="#0000BB">$x</font><font color="#007700">,</font><font color="#0000BB">$y</font><font color="#007700">,</font><font color="#0000BB">$a</font><font color="#007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;GLOBAL&nbsp;</font><font color="#0000BB">$polex</font><font color="#007700">,&nbsp;</font><font color="#0000BB">$poley</font><font color="#007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$maxr&nbsp;</font><font color="#007700">=&nbsp;</font><font color="#0000BB">3000</font><font color="#007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#FF8000">//&nbsp;Size&nbsp;and&nbsp;arrow&nbsp;size&nbsp;is&nbsp;constant<br />&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$size</font><font color="#007700">=</font><font color="#DD0000">""</font><font color="#007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$arrowsize</font><font color="#007700">=</font><font color="#DD0000">""</font><font color="#007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#FF8000">//&nbsp;Since&nbsp;we&nbsp;have&nbsp;different&nbsp;scales&nbsp;we&nbsp;need&nbsp;the&nbsp;data&nbsp;points<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;to&nbsp;be&nbsp;of&nbsp;the&nbsp;same&nbsp;magnitude&nbsp;to&nbsp;give&nbsp;it&nbsp;a&nbsp;distance<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;interpretation.<br />&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$x&nbsp;</font><font color="#007700">*=&nbsp;</font><font color="#0000BB">10</font><font color="#007700">;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#FF8000">//&nbsp;Colors&nbsp;gets&nbsp;colder&nbsp;the&nbsp;further&nbsp;out&nbsp;we&nbsp;go&nbsp;from&nbsp;the&nbsp;center<br />&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$r&nbsp;</font><font color="#007700">=&nbsp;(</font><font color="#0000BB">$x</font><font color="#007700">-</font><font color="#0000BB">$polex</font><font color="#007700">*</font><font color="#0000BB">10</font><font color="#007700">)*(</font><font color="#0000BB">$x</font><font color="#007700">-</font><font color="#0000BB">$polex</font><font color="#007700">*</font><font color="#0000BB">10</font><font color="#007700">)+(</font><font color="#0000BB">$y</font><font color="#007700">-</font><font color="#0000BB">$poley</font><font color="#007700">)*(</font><font color="#0000BB">$y</font><font color="#007700">-</font><font color="#0000BB">$poley</font><font color="#007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$f&nbsp;</font><font color="#007700">=&nbsp;</font><font color="#0000BB">$r</font><font color="#007700">/</font><font color="#0000BB">$maxr</font><font color="#007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;if(&nbsp;</font><font color="#0000BB">$f&nbsp;</font><font color="#007700">&gt;&nbsp;</font><font color="#0000BB">1&nbsp;</font><font color="#007700">)&nbsp;</font><font color="#0000BB">$f</font><font color="#007700">=</font><font color="#0000BB">1</font><font color="#007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$red&nbsp;</font><font color="#007700">=&nbsp;</font><font color="#0000BB">floor</font><font color="#007700">((</font><font color="#0000BB">1</font><font color="#007700">-</font><font color="#0000BB">$f</font><font color="#007700">)*</font><font color="#0000BB">255</font><font color="#007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$blue&nbsp;</font><font color="#007700">=&nbsp;</font><font color="#0000BB">floor</font><font color="#007700">(</font><font color="#0000BB">$f</font><font color="#007700">*</font><font color="#0000BB">255</font><font color="#007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$color&nbsp;</font><font color="#007700">=&nbsp;array(</font><font color="#0000BB">$red</font><font color="#007700">,</font><font color="#0000BB">0</font><font color="#007700">,</font><font color="#0000BB">$blue</font><font color="#007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#FF8000">//echo&nbsp;"x=$x,&nbsp;y=$y,&nbsp;blue=$blue,&nbsp;red=$red&lt;br&gt;";<br />&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#007700">return&nbsp;array(</font><font color="#0000BB">$color</font><font color="#007700">,</font><font color="#0000BB">$size</font><font color="#007700">,</font><font color="#0000BB">$arrowsize</font><font color="#007700">);<br />}<br /><br /></font><font color="#FF8000">//&nbsp;Create&nbsp;data&nbsp;for&nbsp;a&nbsp;simulated&nbsp;pseudo-magnetic&nbsp;radient&nbsp;field<br /></font><font color="#0000BB">$datax&nbsp;</font><font color="#007700">=&nbsp;array();<br /></font><font color="#0000BB">$datay&nbsp;</font><font color="#007700">=&nbsp;array();<br /></font><font color="#0000BB">$angle&nbsp;</font><font color="#007700">=&nbsp;array();<br />for(</font><font color="#0000BB">$x</font><font color="#007700">=</font><font color="#0000BB">1</font><font color="#007700">;&nbsp;</font><font color="#0000BB">$x&nbsp;</font><font color="#007700">&lt;&nbsp;</font><font color="#0000BB">10</font><font color="#007700">;&nbsp;++</font><font color="#0000BB">$x&nbsp;</font><font color="#007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;for(</font><font color="#0000BB">$y</font><font color="#007700">=</font><font color="#0000BB">10</font><font color="#007700">;&nbsp;</font><font color="#0000BB">$y</font><font color="#007700">&lt;</font><font color="#0000BB">100</font><font color="#007700">;&nbsp;</font><font color="#0000BB">$y&nbsp;</font><font color="#007700">+=&nbsp;</font><font color="#0000BB">10</font><font color="#007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$a&nbsp;</font><font color="#007700">=&nbsp;-</font><font color="#0000BB">1</font><font color="#007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;if(&nbsp;</font><font color="#0000BB">$x</font><font color="#007700">==</font><font color="#0000BB">$polex&nbsp;</font><font color="#007700">&amp;&amp;&nbsp;</font><font color="#0000BB">$y</font><font color="#007700">==</font><font color="#0000BB">$poley&nbsp;</font><font color="#007700">)&nbsp;continue;<br />&nbsp;&nbsp;&nbsp;&nbsp;if(&nbsp;</font><font color="#0000BB">$x</font><font color="#007700">==</font><font color="#0000BB">$polex&nbsp;</font><font color="#007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(&nbsp;</font><font color="#0000BB">$y&nbsp;</font><font color="#007700">&gt;&nbsp;</font><font color="#0000BB">$poley&nbsp;</font><font color="#007700">)&nbsp;</font><font color="#0000BB">$a</font><font color="#007700">=</font><font color="#0000BB">90</font><font color="#007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;</font><font color="#0000BB">$a&nbsp;</font><font color="#007700">=&nbsp;</font><font color="#0000BB">270</font><font color="#007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;if(&nbsp;</font><font color="#0000BB">$y</font><font color="#007700">==</font><font color="#0000BB">$poley&nbsp;</font><font color="#007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(&nbsp;</font><font color="#0000BB">$x&nbsp;&nbsp;</font><font color="#007700">&gt;&nbsp;</font><font color="#0000BB">$polex&nbsp;</font><font color="#007700">)&nbsp;</font><font color="#0000BB">$a</font><font color="#007700">=</font><font color="#0000BB">0</font><font color="#007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;&nbsp;</font><font color="#0000BB">$a</font><font color="#007700">=</font><font color="#0000BB">180</font><font color="#007700">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;if(&nbsp;</font><font color="#0000BB">$a&nbsp;</font><font color="#007700">==&nbsp;-</font><font color="#0000BB">1&nbsp;</font><font color="#007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$d1&nbsp;</font><font color="#007700">=&nbsp;</font><font color="#0000BB">$y</font><font color="#007700">-</font><font color="#0000BB">$poley</font><font color="#007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$d2&nbsp;</font><font color="#007700">=&nbsp;(</font><font color="#0000BB">$polex</font><font color="#007700">-</font><font color="#0000BB">$x</font><font color="#007700">)*</font><font color="#0000BB">20</font><font color="#007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(&nbsp;</font><font color="#0000BB">$y&nbsp;</font><font color="#007700">&lt;&nbsp;</font><font color="#0000BB">$poley&nbsp;</font><font color="#007700">)&nbsp;</font><font color="#0000BB">$d2&nbsp;</font><font color="#007700">*=&nbsp;-</font><font color="#0000BB">1</font><font color="#007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$h&nbsp;</font><font color="#007700">=&nbsp;</font><font color="#0000BB">sqrt</font><font color="#007700">(</font><font color="#0000BB">$d1</font><font color="#007700">*</font><font color="#0000BB">$d1</font><font color="#007700">+</font><font color="#0000BB">$d2</font><font color="#007700">*</font><font color="#0000BB">$d2</font><font color="#007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$t&nbsp;</font><font color="#007700">=&nbsp;-</font><font color="#0000BB">$d2</font><font color="#007700">/</font><font color="#0000BB">$h</font><font color="#007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$ac&nbsp;</font><font color="#007700">=&nbsp;</font><font color="#0000BB">acos</font><font color="#007700">(</font><font color="#0000BB">$t</font><font color="#007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(&nbsp;</font><font color="#0000BB">$y&nbsp;</font><font color="#007700">&lt;&nbsp;</font><font color="#0000BB">$poley&nbsp;</font><font color="#007700">)&nbsp;</font><font color="#0000BB">$ac&nbsp;</font><font color="#007700">+=&nbsp;</font><font color="#0000BB">M_PI</font><font color="#007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$a&nbsp;</font><font color="#007700">=&nbsp;</font><font color="#0000BB">$ac&nbsp;</font><font color="#007700">*&nbsp;</font><font color="#0000BB">180</font><font color="#007700">/</font><font color="#0000BB">M_PI</font><font color="#007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$datax</font><font color="#007700">[]&nbsp;=&nbsp;</font><font color="#0000BB">$x</font><font color="#007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$datay</font><font color="#007700">[]&nbsp;=&nbsp;</font><font color="#0000BB">$y</font><font color="#007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$angle</font><font color="#007700">[]&nbsp;=&nbsp;</font><font color="#0000BB">$a</font><font color="#007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br /></font><font color="#FF8000">//&nbsp;Setup&nbsp;the&nbsp;graph<br /></font><font color="#0000BB">$graph&nbsp;</font><font color="#007700">=&nbsp;new&nbsp;</font><font color="#0000BB">Graph</font><font color="#007700">(</font><font color="#0000BB">300</font><font color="#007700">,</font><font color="#0000BB">200</font><font color="#007700">);<br /></font><font color="#0000BB">$graph</font><font color="#007700">-&gt;</font><font color="#0000BB">SetScale</font><font color="#007700">(</font><font color="#DD0000">"intlin"</font><font color="#007700">,</font><font color="#0000BB">0</font><font color="#007700">,</font><font color="#0000BB">100</font><font color="#007700">,</font><font color="#0000BB">0</font><font color="#007700">,</font><font color="#0000BB">10</font><font color="#007700">);<br /></font><font color="#0000BB">$graph</font><font color="#007700">-&gt;</font><font color="#0000BB">SetMarginColor</font><font color="#007700">(</font><font color="#DD0000">'lightblue'</font><font color="#007700">);<br /><br /><br /></font><font color="#FF8000">//&nbsp;..and&nbsp;titles<br /></font><font color="#0000BB">$graph</font><font color="#007700">-&gt;</font><font color="#0000BB">title</font><font color="#007700">-&gt;</font><font color="#0000BB">Set</font><font color="#007700">(</font><font color="#DD0000">"Field&nbsp;plot"</font><font color="#007700">);<br /><br /></font><font color="#FF8000">//&nbsp;Setup&nbsp;the&nbsp;field&nbsp;plot<br /></font><font color="#0000BB">$fp&nbsp;</font><font color="#007700">=&nbsp;new&nbsp;</font><font color="#0000BB">FieldPlot</font><font color="#007700">(</font><font color="#0000BB">$datay</font><font color="#007700">,</font><font color="#0000BB">$datax</font><font color="#007700">,</font><font color="#0000BB">$angle</font><font color="#007700">);<br /><br /></font><font color="#FF8000">//&nbsp;Setup&nbsp;formatting&nbsp;callback<br /></font><font color="#0000BB">$fp</font><font color="#007700">-&gt;</font><font color="#0000BB">SetCallback</font><font color="#007700">(</font><font color="#DD0000">'FldCallback'</font><font color="#007700">);<br /><br /></font><font color="#FF8000">//&nbsp;First&nbsp;size&nbsp;argument&nbsp;is&nbsp;length&nbsp;(in&nbsp;pixels&nbsp;of&nbsp;arrow)&nbsp;<br />//&nbsp;Second&nbsp;size&nbsp;argument&nbsp;is&nbsp;roughly&nbsp;size&nbsp;of&nbsp;arrow.&nbsp;Arrow&nbsp;size&nbsp;is&nbsp;specified&nbsp;as<br />//&nbsp;an&nbsp;integer&nbsp;in&nbsp;the&nbsp;range&nbsp;[0,9]<br /></font><font color="#0000BB">$fp</font><font color="#007700">-&gt;</font><font color="#0000BB">arrow</font><font color="#007700">-&gt;</font><font color="#0000BB">SetSize</font><font color="#007700">(</font><font color="#0000BB">20</font><font color="#007700">,</font><font color="#0000BB">2</font><font color="#007700">);<br /></font><font color="#0000BB">$fp</font><font color="#007700">-&gt;</font><font color="#0000BB">arrow</font><font color="#007700">-&gt;</font><font color="#0000BB">SetColor</font><font color="#007700">(</font><font color="#DD0000">'navy'</font><font color="#007700">);<br /><br /></font><font color="#0000BB">$graph</font><font color="#007700">-&gt;</font><font color="#0000BB">Add</font><font color="#007700">(</font><font color="#0000BB">$fp</font><font color="#007700">);<br /><br /></font><font color="#FF8000">//&nbsp;..&nbsp;and&nbsp;output<br /></font><font color="#0000BB">$graph</font><font color="#007700">-&gt;</font><font color="#0000BB">Stroke</font><font color="#007700">();<br /><br /></font><font color="#0000BB">?&gt;<br /></font><br /><br /></font>
3
</code>