# SurfaceGraph1

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

## Graphing a Parametric Surface in 3D

Click to enlarge

This PG code shows how to make an interactive graph of a parametric surface that is displayed using the LiveGraphics3D Java applet.

• Download file: File:SurfaceGraph1.txt (change the file extension from txt to pg when you save it)
• File location in NPL: `FortLewis/Authoring/Templates/Parametric/SurfaceGraph1/SurfaceGraph1.pg`

PG problem file Explanation

Problem tagging:

```DOCUMENT();

loadMacros(
"PGstandard.pl",
"MathObjects.pl",
"LiveGraphicsParametricSurface3D.pl",
);

TEXT(beginproblem());
```

Initialization: We need to include the macros file `LiveGraphicsParametricSurface3D.pl`.

```Context("Numeric");

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

\$plot = ParametricSurface3D(
Fx => Formula("3*cos(u)*sin(v)"),
Fy => Formula("3*sin(u)*sin(v)"),
Fz => Formula("3*cos(v)"),
uvar => 'u', # theta
vvar => 'v', # phi
umin => 0,
umax =>  2*pi,
vmin =>  0,
vmax =>  pi,
usamples => 15,
vsamples => 15,
axesframed => 1,
xaxislabel => "X",
yaxislabel => "Y",
zaxislabel => "Z",
mesh => 0,
outputtype => 4,
);
```

Setup:

```Context()->texStrings;
BEGIN_TEXT
\{
Live3Ddata(
\$plot,
image => "sphere.png",
size => [400,400],
tex_size => 600,
tex_center => 1,
scale => 1.1,
);
\}
END_TEXT
Context()->normalStrings;
```

Main Text: We generate a string of plot data using `ParametricSurface3D()`.

Setting `outputtype` to something other than 4 will require you to read the source code of `LiveGraphicsParametricSurface3D.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 Martin Kraus's LiveGraphics3D homepage, and the excellent article by Jonathan Rogness and Martin Kraus Constructing Mathlets Quickly Using LiveGraphics3D.

```\$showPartialCorrectAnswers = 1;
```

Answer Evaluation:

```Context()->texStrings;
BEGIN_SOLUTION
\${PAR}SOLUTION:\${PAR}
Solution explanation goes here.
END_SOLUTION
Context()->normalStrings;

COMMENT('MathObject version.');

ENDDOCUMENT();
```

Solution: