{VERSION 5 0 "SUN SPARC SOLARIS" "5.0" }
{USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 
1 0 0 0 0 1 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0 
0 0 1 }{CSTYLE "2D Output" 2 20 "" 0 1 0 0 255 1 0 0 0 0 0 0 0 0 0 1 }
{CSTYLE "" -1 256 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{PSTYLE "Normal
" -1 0 1 {CSTYLE "" -1 -1 "New century schoolbook" 1 18 0 0 0 0 1 1 2 
0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Text Output" 
-1 2 1 {CSTYLE "" -1 -1 "Courier" 1 10 0 0 255 1 0 0 0 0 0 1 3 0 0 1 }
1 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Heading 1" 0 3 1 {CSTYLE "" 
-1 -1 "" 1 18 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }1 0 0 0 6 6 0 0 0 0 0 0 -1 
0 }{PSTYLE "Heading 2" 3 4 1 {CSTYLE "" -1 -1 "" 1 14 0 0 0 0 0 0 0 0 
0 0 0 0 0 1 }0 0 0 -1 4 4 0 0 0 0 0 0 -1 0 }{PSTYLE "Heading 3" 4 5 1 
{CSTYLE "" -1 -1 "" 1 12 0 0 0 0 1 0 0 0 0 0 0 0 0 1 }0 0 0 -1 0 0 0 
0 0 0 0 0 -1 0 }{PSTYLE "Warning" 2 7 1 {CSTYLE "" -1 -1 "" 0 1 0 0 
255 1 0 0 0 0 0 0 1 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "M
aple Output" 0 11 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 
1 }3 3 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 11 12 1 {CSTYLE "" -1 
-1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }1 0 0 -1 -1 -1 0 0 0 0 0 0 -1 
0 }{PSTYLE "R3 Font 0" -1 256 1 {CSTYLE "" -1 -1 "Helvetica" 1 18 0 0 
0 0 2 1 2 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R3 \+
Font 2" -1 257 1 {CSTYLE "" -1 -1 "Helvetica" 1 14 0 0 0 0 2 1 2 0 0 
0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R3 Font 3" -1 
258 1 {CSTYLE "" -1 -1 "Helvetica" 1 24 0 0 0 0 2 1 2 0 0 0 0 0 0 1 }
0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R3 Font 4" -1 259 1 {CSTYLE 
"" -1 -1 "Helvetica" 1 24 0 0 0 0 2 1 2 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 
0 0 0 0 0 0 -1 0 }{PSTYLE "R3 Font 5" -1 260 1 {CSTYLE "" -1 -1 "Helve
tica" 1 24 0 0 0 0 2 1 2 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 
0 }{PSTYLE "R3 Font 6" -1 261 1 {CSTYLE "" -1 -1 "Helvetica" 1 24 0 0 
0 0 2 1 2 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R3 \+
Font 7" -1 262 1 {CSTYLE "" -1 -1 "Helvetica" 1 14 0 0 0 0 2 1 2 0 0 
0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 0 263 1 
{CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }3 0 0 -1 -1 -1 0 
0 0 0 0 0 -1 0 }}
{SECT 0 {PARA 263 "" 0 "" {TEXT -1 69 "MAPLE WORKSHEET #4: Pyramids, P
risms, Antiprisms and the Icosahedron." }}{SECT 1 {PARA 3 "" 0 "" 
{TEXT -1 38 "Load the plots and plottools packages:" }}{EXCHG {PARA 0 
"> " 0 "" {MPLTEXT 1 0 30 "with(plots): with(plottools):\n" }}{PARA 7 
"" 1 "" {TEXT -1 43 "Warning, the name arrow has been redefined\n" }}
{PARA 7 "" 1 "" {TEXT -1 43 "Warning, the name arrow has been redefine
d\n" }}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 34 "Rotation matrix around t
he z-axis:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 89 "Rz := theta->a
rray([ \n[cos(theta),-sin(theta),0],[sin(theta),cos(theta),0],[0,0,1] \+
\n] \n):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "Rz(theta);" }}{PARA 11 
"" 1 "" {XPPMATH 20 "6#-%'matrixG6#7%7%-%$cosG6#%&thetaG,$-%$sinGF*!\"
\"\"\"!7%F-F(F07%F0F0\"\"\"" }}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 44 "
Triangle in space with given vertex-vectors:" }}{EXCHG {PARA 0 "> " 0 
"" {MPLTEXT 1 0 89 "tri := (x1,x2,x3)->polygonplot3d(\nmap( (x->conver
t(x,list)), [x1,x2,x3] ),\nthickness=2 ):" }}}{EXCHG {PARA 0 "> " 0 "
" {MPLTEXT 1 0 76 "display3d(\ntri([1,0,0],[0,1,0],[0,0,1]),\norientat
ion=[-34,63],axes=normal);\n" }}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 68 
"We now build a pentagonal pyramid with equilateral triangular faces:
" }}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 95 "h is the height of the pyrami
d; each side is obtained by rotating an initial side by Rz(theta):" }}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "r:=1/(2*sin(Pi/5)):" }}}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 140 "h := sqrt(1-r^2):\nsides :=
 display3d(\n\{ seq( tri(\nevalm(Rz(2*Pi/5)^(k)&*[r,0,0]), evalm(Rz(2*
Pi/5)^(k+1)&*[r,0,0]), [0,0,h]\n), k=1..5) \} ): " }}}{EXCHG {PARA 0 "
> " 0 "" {MPLTEXT 1 0 93 "display3d(sides,\nstyle=patch, orientation=[
61,43],\nlightmodel=`light1`, scaling=constrained);" }}}}{SECT 1 
{PARA 4 "" 0 "" {TEXT -1 69 "Another way to do this is to use `rotate'
 from the plottools package:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 
122 "rotsides := display3d(\{ \nseq( \nrotate( \ntri([r,0,0],[r*cos(2*
Pi/5),r*sin(2*Pi/5),0],[0,0,h]),\n0,0,2*k*Pi/5), \nk=1..5) \n\}):" }}}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 95 "display3d(rotsides,\nstyle=p
atch, orientation=[61,43],\nlightmodel=`light4`,scaling=constrained);
" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 28 "We add the base and combine
:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "base:=polygonplot3d(\n[
 seq(evalm(Rz(2*Pi/5)^(k)&*[r,0,0]), k=1..5) ] ):" }}}{EXCHG {PARA 0 "
> " 0 "" {MPLTEXT 1 0 157 "display3d(\{sides,base\},\nstyle=patch, ori
entation=[61,43],\nlightmodel=`light3`, scaling=constrained, \ntitlefo
nt=[TIMES,ROMAN,22], title=`Pentagonal Pyramid`);" }}}}}{SECT 1 {PARA 
3 "" 0 "" {TEXT -1 36 "Create a  double pentagonal pyramid:" }}{EXCHG 
{PARA 0 "> " 0 "" {MPLTEXT 1 0 124 "sides1 := display3d(\n\{ seq( tri(
 \nevalm(Rz(2*Pi/5)^(k)&*[r,0,0]), evalm(Rz(2*Pi/5)^(k+1)&*[r,0,0]), [
0,0,-h]\n), k=1..5) \} ):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 
145 "display3d(\{sides, sides1\},\nstyle=patch, orientation=[57,75], s
caling=constrained,\ntitlefont=[TIMES,ROMAN,22], title=`Double Pentago
nal Pyramid`);" }}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 30 "Create a pent
agonal antiprism:" }}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 65 "The top and \+
bottom pentagonal faces (inscribed in a unit circle):" }}{EXCHG {PARA 
0 "> " 0 "" {MPLTEXT 1 0 81 "bottom := polygonplot3d(\n[ seq( evalm(Rz
(2*Pi/5)^(k)&*[1, 0, -1/2]), k=1..5) ] ):" }}}{EXCHG {PARA 0 "> " 0 "
" {MPLTEXT 1 0 88 " top := polygonplot3d(\n[ seq( evalm(Rz(Pi/5)&*Rz(2
*Pi/5)^(k)&*[1, 0, 1/2]), k=1..5) ] ):" }}}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 79 "display3d(\{bottom, top\}, scaling=constrained,\nstyl
e=patch, orientation=[90,0]);" }}}{SECT 1 {PARA 5 "" 0 "" {TEXT 256 
54 "Using translate and rotate from the plottools package:" }}{EXCHG 
{PARA 0 "> " 0 "" {MPLTEXT 1 0 136 "newtop := \ntranslate(\nrotate(bot
tom,0,0,Pi/5), 0,0,1):\ndisplay3d(\{bottom, newtop\},\nstyle=patch, or
ientation=[90,0],scaling=constrained);" }}}}}{SECT 1 {PARA 4 "" 0 "" 
{TEXT -1 28 "Insert the upward triangles:" }}{SECT 1 {PARA 5 "" 0 "" 
{TEXT -1 26 "First the initial triange:" }}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 93 "faceup := tri(\n[1, 0, -1/2], evalm(Rz(Pi/5)&*[1, 0, \+
1/2]),\nevalm(Rz(2*Pi/5)&*[1, 0, -1/2]) ):" }}}{EXCHG {PARA 0 "> " 0 "
" {MPLTEXT 1 0 88 "display3d(\{bottom, top, faceup\}, scaling=constrai
ned,\nstyle=patch, orientation=[37,75]);" }}}}{SECT 1 {PARA 5 "" 0 "" 
{TEXT -1 26 "Then the rest by rotation:" }}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 151 "faceups := k->tri( \nop( map( (x->evalm(Rz(2*Pi/5)&*
x)) @@ k,  \n[ [1, 0, -1/2], \nevalm(Rz(Pi/5)&*[1, 0,1/2]), \nevalm(Rz
(2*Pi/5)&*[1, 0, -1/2]) ]  \n)) ):" }}}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 124 "map( (x->evalm(Rz(2*Pi/5)&*x)) @@ k,  \n[ [1, 0, -1/
2], \nevalm(Rz(Pi/5)&*[1, 0,1/2]), \nevalm(Rz(2*Pi/5)&*[1, 0, -1/2]) ]
  \n):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 6 "op(%);" }}{PARA 
12 "" 1 "" {XPPMATH 20 "6%--%#@@G6$f*6#%\"xG6\"6$%)operatorG%&arrowGF*
-%&evalmG6#-%#&*G6$-%#RzG6#,$*(\"\"#\"\"\"\"\"&!\"\"%#PiGF:F:9$F*F*F*%
\"kG6#7%F:\"\"!#F<F9-F$6#-%'vectorG6#7%-%$cosG6#,$*&F;F<F=F:F:-%$sinGF
L#F:F9-F$6#-FG6#7%-FKF6-FPF6FC" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 
1 0 104 "display3d(\{bottom, top, seq(faceups(k), k=1..5)\},\nstyle=pa
tch,scaling=constrained, orientation=[37,75]);" }}}}{SECT 1 {PARA 5 "
" 0 "" {TEXT -1 34 "Using the plottools package again:" }}{EXCHG 
{PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "newfaceups := k-> rotate(faceup,0,0
,2*k*Pi/5):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 107 "display3d(
\{bottom, top, seq(newfaceups(k), k=1..5)\},\nstyle=patch,scaling=cons
trained, orientation=[37,75]);" }}}}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 
30 "Insert the downward triangles:" }}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 114 "facedown := tri(\nevalm(Rz(Pi/5)&*[1, 0, 1/2]), \nev
alm(Rz(2*Pi/5)&*[1, 0, -1/2]),\nevalm(Rz(3*Pi/5)&*[1, 0, 1/2]) ):" }}}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 98 "display3d(\{bottom, top, fac
eup, facedown\},\nstyle=patch, scaling=constrained, orientation=[37,75
]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 175 "facedowns := k->tri
(\nop( map( (x->evalm(Rz(2*Pi/5)&*x)) @@ k,\n[ evalm(Rz(Pi/5)&*    [1,
 0, 1/2]),\n  evalm(Rz(2*Pi/5)&*[1, 0, -1/2]),\n  evalm(Rz(3*Pi/5)&*[1
, 0, 1/2])  ] \n)) ):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "ne
wfacedowns := k-> rotate(facedown,0,0,2*k*Pi/5):" }}}{EXCHG {PARA 0 ">
 " 0 "" {MPLTEXT 1 0 193 "display3d(\{bottom, top, seq(newfacedowns(k)
, k=1..5), seq(faceups(k), k=1..5)\},\nstyle=patch, scaling=constraine
d, orientation=[37,75],\ntitlefont=[TIMES,ROMAN,22], title=`Pentagonal
 Antiprism`);" }}}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 76 "Put pentagona
l prisms on the top and bottom faces to obtain the\nicosahedron:" }}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "h:=sqrt((2*sin(Pi/5))^2-1):
" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 154 "cap1 := display3d(\n\{
 seq( tri(\nevalm(Rz(Pi/5)&*Rz(2*Pi/5)^(k)&*[1, 0, 1/2]),\nevalm(Rz(Pi
/5)&*Rz(2*Pi/5)^(k+1)&*[1, 0, 1/2]), \n[0, 0, h+1/2]),\nk=1..5) \} ):
" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 137 "cap2 := display3d(\n\{
 seq( tri(\nevalm(Rz(2*Pi/5)^(k)&*[1, 0, -1/2]),\nevalm(Rz(2*Pi/5)^(k+
1)&*[1, 0, -1/2]), \n[0, 0, -h-1/2]),\nk=1..5) \} ):" }}}{EXCHG {PARA 
0 "> " 0 "" {MPLTEXT 1 0 79 "display3d(\{cap1, cap2\},\nstyle=patch, s
caling=constrained, orientation=[37,68]);" }}}{EXCHG {PARA 0 "> " 0 "
" {MPLTEXT 1 0 181 "display3d(\{ seq(facedowns(k), k=1..5), seq(faceup
s(k), k=1..5), cap1, cap2\},\nstyle=patch, scaling=constrained, orient
ation=[37,68],\ntitlefont=[TIMES,ROMAN,22], title=`Icosahedron`);" }}}
}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 43 "A tetrahedron in space with give
n vertices:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 87 "tet := (x1,x2
,x3,x4)->\{ \nseq( \ntri( \nop(subsop(k=NULL, [x1,x2,x3,x4])) \n), \nk
=1..4) \n\}:" }}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 40 "Identity and ha
lf-turns around the axes:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 
180 "H(0) := array(1..3, 1..3, identity):\nH(1) := array([ [1,0,0], [0
,-1,0], [0,0,-1] ]):\nH(2) := array([ [-1,0,0], [0,1,0], [0,0,-1] ]):
\nH(3) := array([ [-1,0,0], [0,-1,0], [0,0,1] ]):" }}}}{SECT 1 {PARA 
3 "" 0 "" {TEXT -1 32 "Vertices of regular tetrahedron:" }}{EXCHG 
{PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "a:=k->evalm(H(k)&*[1,1,1]):" }}}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 79 "display3d(tet( seq(a(k), k=0
..3)),\nstyle=patch, axes=boxed, tickmarks=[0,0,0]);" }}}}{SECT 1 
{PARA 3 "" 0 "" {TEXT -1 11 "Wireframes:" }}{SECT 1 {PARA 4 "" 0 "" 
{TEXT -1 35 "Line in space with given endpoints:" }}{EXCHG {PARA 0 "> \+
" 0 "" {MPLTEXT 1 0 94 "lin:=(x1,x2)->polygonplot3d(\n[convert(x1, lis
t), convert(x2, list)],\nstyle=line, thickness=3):" }}}}{SECT 1 {PARA 
4 "" 0 "" {TEXT -1 51 "The plottools package contains a routine for li
nes:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 121 "with(plottools):\nd
isplay(line([0,0,0], [3,4,5], \nthickness=3, color=red, linestyle=3), \+
axes=normal,\norientation=[20,30]);" }}}}{SECT 1 {PARA 4 "" 0 "" 
{TEXT -1 22 "Wireframe tetrahedron:" }}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 106 "wiretet:=(x1,x2,x3,x4)->\n\{ lin(x1, x2), lin(x1, x3
), lin(x1, x4), lin(x2, x3), lin(x2, x4), lin(x3, x4) \}:" }}}{EXCHG 
{PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "display3d(wiretet( seq(a(k), k=0..3
) ),\naxes=boxed, tickmarks=[0,0,0]);" }}}}}{SECT 1 {PARA 3 "" 0 "" 
{TEXT -1 17 "Pentagonal prism:" }}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 46 
"A paralleogram in space with 3 given vertices:" }}{EXCHG {PARA 0 "> \+
" 0 "" {MPLTEXT 1 0 105 "par := (x0,x1,x2)->polygonplot3d(\nmap( (x->c
onvert(x,list)), \n[x1,x0,x2,evalm(x1+x2-x0)] ),\nthickness=2):" }}}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 112 "display3d(par([0,0,0], [1,1
/2,0], [0,1/2,1]),\nstyle=patch, axes=normal,\ntickmarks=[0,0,0], orie
ntation=[18,66]);" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 41 "Creating t
he faces of a pentagonal prism:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 
1 0 73 "ptop := polygonplot3d(\n[ seq( evalm(Rz(2*Pi/5)^k&*\n[1,0,1]),
 k=1..5) ] ):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 78 "pbottom :=
 polygonplot3d(\n[ seq( evalm(Rz(2*Pi/5)^(k)&*[1,0,-1]), k=1..5) ] ):
" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "pside := par([1,0,-1], \+
evalm(Rz(2*Pi/5)&*[1,0,-1]), [1,0,1]):" }}}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 47 "display3d(\{pbottom, ptop, pside\},\nstyle=patch);" }
}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 109 "pfaces := k->par(\nop( ma
p( (x->evalm(Rz(2*Pi/5)&*x)) @@ k, \n[ [1,0,-1], Rz(2*Pi/5)&*[1,0,-1],
 [1,0,1] ] )) ):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 139 "displa
y3d(\{pbottom, ptop, seq(pfaces(k), k=1..5)\},\nstyle=patch, scaling=c
onstrained,\ntitlefont=[TIMES,ROMAN,22], title=`Pentagonal Prism`);" }
}}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 48 "A parallelepiped in space wit
h 4 given vertices:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 210 "parp
ip := (x0,x1,x2,x3)->\n\{ par(x0, x1, x2), par(x0, x2, x3), par(x0, x1
, x3), \npar(x1, evalm(x1+x2-x0), evalm(x1+x3-x0)),\npar(x2, evalm(x1+
x2-x0), evalm(x2+x3-x0)),\npar(x3, evalm(x1+x3-x0), evalm(x2+x3-x0)) \+
\}:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 121 "display3d(parpip([0
,0,0],[1,0,0],[1/2,1/2,1],[0,1,0]),\nstyle=patch, \naxes=boxed, tickma
rks=[0,0,0], orientation=[70,69]);" }}}{EXCHG {PARA 0 "> " 0 "" 
{MPLTEXT 1 0 144 "colpar := (x0,x1,x2,c1,c2,c3)->polygonplot3d(\nmap( \+
(x->convert(x,list)), \n[x1,x0,x2,evalm(x1+x2-x0)] ),\nthickness=2, co
lor=COLOR(RGB,c1,c2,c3)):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 
296 "colparpip := (x0,x1,x2,x3,c1,c2,c3)->\n\{ colpar(x0, x1, x2,c1,c2
,c3), \ncolpar(x0, x2, x3,c1,c2,c3), \ncolpar(x0, x1, x3,c1,c2,c3), \n
colpar(x1, evalm(x1+x2-x0), evalm(x1+x3-x0),c1,c2,c3),\ncolpar(x2, eva
lm(x1+x2-x0), evalm(x2+x3-x0),c1,c2,c3),\ncolpar(x3, evalm(x1+x3-x0), \+
evalm(x2+x3-x0),c1,c2,c3) \}:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 
0 129 "display3d(colparpip([1,1,1],[-1,1,1],[1,-1,1],[1,1,-1],1,1,0),
\nstyle=patch, \naxes=boxed, tickmarks=[0,0,0], orientation=[70,69]);
" }}}}}{MARK "12" 0 }{VIEWOPTS 1 1 0 3 2 1804 1 1 1 1 }{PAGENUMBERS 0 
1 2 33 1 1 }
