Difference between revisions of "3DGraphsVectorFields"

From WeBWorK_wiki
Jump to navigation Jump to search
(New page: <h2>Vector Fields in Three Dimensions</h2> <!-- Header for these sections -- no modification needed --> <p style="background-color:#eeeeee;border:black solid 1px;padding:3px;"> <em>Th...)
 
Line 86: Line 86:
 
</p>
 
</p>
 
<p>
 
<p>
Setting <code>outputtype</code> to something other than 4 will require you to read the source code of <code>LiveGraphicsVectorField3D.pl</code> and familiarize yourself with the details of the <code>LiveGraphics3D</code> java applet. For more information on how to work with the string of plot data, see [http://www.vis.uni-stuttgart.de/~kraus/LiveGraphics3D/|LiveGraphics3D homepage] and the excellent article by Jonathan Rogness and Martin Kraus [http://mathdl.maa.org/mathDL/55/?pa=content&sa=viewDocument&nodeId=1143&pf=1|Constructing Mathlets Quickly Using LiveGraphics3D]
+
Setting <code>outputtype</code> to something other than 4 will require you to read the source code of <code>LiveGraphicsVectorField3D.pl</code> and familiarize yourself with the details of the <code>LiveGraphics3D</code> java applet. For more information on how to work with the string of plot data, see [http://www.vis.uni-stuttgart.de/~kraus/LiveGraphics3D/ LiveGraphics3D homepage] and the excellent article by Jonathan Rogness and Martin Kraus [http://mathdl.maa.org/mathDL/55/?pa=content&sa=viewDocument&nodeId=1143&pf=1 Constructing Mathlets Quickly Using LiveGraphics3D]
 
</p>
 
</p>
 
</td>
 
</td>

Revision as of 19:50, 22 April 2010

Vector Fields in Three Dimensions


This PG code shows how to display vector fields in three dimensions that are defined by formulas.

Problem Techniques Index

PG problem file Explanation
DOCUMENT();

loadMacros(
"PGstandard.pl",
"MathObjects.pl",
"parserVectorUtils.pl",
"PGcourse.pl",
"LiveGraphicsVectorField3D.pl",
);

TEXT(beginproblem());

Initialization: We need to include the macros file LiveGraphicsVectorField3D.pl.

Context("Numeric");

Context()->variables->are(x=>"Real",y=>"Real",z=>"Real");

$plot = VectorField3D(
Fx => Formula("y"),
Fy => Formula("-x"),
Fz => Formula("z"),
xvar => 'x',
yvar => 'y',
zvar => 'z',
xmin => -1,
xmax =>  1,
ymin => -1,
ymax =>  1,
zmin => -1,
zmax =>  1,
xsamples => 4,
ysamples => 4,
zsamples => 4,
axesframed => 1,
xaxislabel => "X",
yaxislabel => "Y",
zaxislabel => "Z",
vectorcolor => "RGBColor[1.0,0.0,0.0]",
vectorscale => 0.2,
vectorthickness => 0.01,
outputtype => 4,
);

Setup: The VectorField3D() routine returns a string of plot data consisting of a list of line segments (the vectors) along with other plot options. The arguments RGBColor[a,b,c] are numbers a, b, and c between 0 and 1 inclusive. You can uniformly scale all of the vectors in the vector field by the same amount using vectorscale. The outputtype feature controls how much of the string of plot data is generated, and setting it equal to 4 generates all of the plot information necessary to be displayed.

Setting outputtype to something other than 4 will require you to read the source code of LiveGraphicsVectorField3D.pl and familiarize yourself with the details of the LiveGraphics3D java applet. For more information on how to work with the string of plot data, see LiveGraphics3D homepage and the excellent article by Jonathan Rogness and Martin Kraus Constructing Mathlets Quickly Using LiveGraphics3D

Context()->texStrings;
BEGIN_TEXT
$BCENTER
\{ 
Live3Ddata(
$plot,
image => "cool-vector-field.png", 
size => [400,400],
tex_size => 600,
tex_center => 1,
scale => 1,
);
\}
$ECENTER
END_TEXT
Context()->normalStrings;

Main Text: To display the string of plot data $plot, we use the Live3Ddata() routine provided by the macro LiveGraphics3D.pl, which is automatically loaded by LiveGraphicsVectorField3D.pl.

$showPartialCorrectAnswers = 1;

ENDDOCUMENT(); 

Answer Evaluation: We didn't ask any questions, so this is uninteresting.

Problem Techniques Index