\csname PSTVIIIDLoaded\endcsname
\let\PSTVIIILoaded\endinput
\ifx\PSTricksLoaded\endinput\else\input pstricks.tex\fi
\ifx\PSTnodesLoaded\endinput\else\input pst-node.tex\fi
\ifx\PSTMultidoLoaded\endinput\else\input multido.tex\fi
\ifx\PSTXKeyLoaded\endinput\else\input pst-xkey \fi
\def\fileversion{0.3}
\def\filedate{2006/08/18}
\message{`PST-V3D' v\fileversion, \filedate}
\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax
\pst@addfams{pst-V3D}
\SpecialCoor
\newif\ifPst@visibility\define@key[psset]{pst-V3D}{visibility}[true]{\@nameuse{Pst@visibility#1}}
\psset[pst-V3D]{visibility=true}
\newif\ifPst@arete\define@key[psset]{pst-V3D}{arete}[true]{\@nameuse{Pst@arete#1}}
\psset[pst-V3D]{arete=true}
\newif\ifPst@interior\define@key[psset]{pst-V3D}{interior}[false]{\@nameuse{Pst@interior#1}}
\psset[pst-V3D]{interior=false}
\newif\ifPst@todraw\define@key[psset]{pst-V3D}{todraw}[true]{\@nameuse{Pst@todraw#1}}
\psset[pst-V3D]{todraw=true}
\newif\ifPst@nocolor\define@key[psset]{pst-V3D}{nocolor}[false]{\@nameuse{Pst@nocolor#1}}
\psset[pst-V3D]{nocolor=false}
\define@key[psset]{pst-V3D}{THETA}{\def\pst@VIIID@THETA{#1}} \define@key[psset]{pst-V3D}{PHI}{\def\pst@VIIID@PHI{#1}} \define@key[psset]{pst-V3D}{Dobs}{\def\pst@VIIID@Dobs{#1}} \define@key[psset]{pst-V3D}{Decran}{\def\pst@VIIID@Decran{#1}} \define@key[psset]{pst-V3D}{xO}{\def\pst@VIIID@xO{#1}} \define@key[psset]{pst-V3D}{yO}{\def\pst@VIIID@yO{#1}}
\define@key[psset]{pst-V3D}{RotX}{\def\psk@IIID@RotX{#1}} \define@key[psset]{pst-V3D}{RotY}{\def\psk@IIID@RotY{#1}} \define@key[psset]{pst-V3D}{RotZ}{\def\psk@IIID@RotZ{#1}} \define@key[psset]{pst-V3D}{translation}{\def\psk@IIID@translation{#1}} \define@key[psset]{pst-V3D}{ColorFace1}{\def\psk@IIID@ColorFaceOne{#1}} \define@key[psset]{pst-V3D}{ColorFace2}{\def\psk@IIID@ColorFaceTwo{#1}} \define@key[psset]{pst-V3D}{ColorFace3}{\def\psk@IIID@ColorFaceThree{#1}} \define@key[psset]{pst-V3D}{ColorFace4}{\def\psk@IIID@ColorFaceFour{#1}} \define@key[psset]{pst-V3D}{ColorFace5}{\def\psk@IIID@ColorFaceFive{#1}} \define@key[psset]{pst-V3D}{ColorFace6}{\def\psk@IIID@ColorFaceSix{#1}} \define@key[psset]{pst-V3D}{ColorFace7}{\def\psk@IIID@ColorFaceSeven{#1}} \define@key[psset]{pst-V3D}{ColorFace8}{\def\psk@IIID@ColorFaceEight{#1}} \define@key[psset]{pst-V3D}{ColorFacette}{\def\psk@IIID@ColorFacette{#1}} \psset[pst-V3D]{ColorFace1= 1 1 0 ,
ColorFace2= 0.9 0.9 0 ,
ColorFace3= 0.8 0.8 0 ,
ColorFace4= 0.7 0.7 0 ,
ColorFace5= 0.6 0.6 0 ,
ColorFace6= 0.5 0.5 0 ,
ColorFace7= 0.4 0.4 0 ,
ColorFace8= 0.3 0.3 0 ,
ColorFacette=1 0.2 0.2}
\define@key[psset]{pst-V3D}{PSfont}{\def\psk@PSfont{/#1 }}
\define@key[psset]{pst-V3D}{fontscale}{\def\psk@fontscale{#1 }}
\define@key[psset]{pst-V3D}{xlabelsep}{\def\psk@xlabelsep{#1 }}
\define@key[psset]{pst-V3D}{ylabelsep}{\def\psk@ylabelsep{#1 }}
\psset[pst-V3D]{PSfont=Times-Roman,fontscale=1,xlabelsep=-0.5,ylabelsep=-0.5}
\define@key[psset]{pst-V3D}{normale}{\def\psk@normale{#1}}
\psset[pst-V3D]{normale=30 45}
\psset[pst-V3D]{RotZ=0,RotX=0,RotY=0,translation=0 0 0 , THETA=70,PHI=30,Dobs=50,Decran=50,xO=0,yO=0}\define@key[psset]{pst-V3D}{origine}{\def\pst@VIIID@origine{#1}}
\psset[pst-V3D]{origine=0 0 0 }
\define@key[psset]{pst-V3D}{hsbcolor}{\def\pst@VIIID@hsbcolor{#1}} \define@key[psset]{pst-V3D}{thetaLight}{\def\pst@VIIID@thetaLight{#1}} \define@key[psset]{pst-V3D}{phiLight}{\def\pst@VIIID@phiLight{#1}} \define@key[psset]{pst-V3D}{dLight}{\def\pst@VIIID@dLight{#1}}
\psset[pst-V3D]{thetaLight=70,phiLight=30,dLight=10000,hsbcolor=0.17 0.5}
\pst@def{parametresIIID}</ReEncode { exch findfont
dup length dict begin { 1 index /FID eq {pop pop} {def} ifelse
}forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
pop }bind def
/Font \psk@PSfont\space /ISOfont ReEncode /ISOfont def
/cm {\pst@number\psunit mul} def
/cm_1 {\pst@number\psunit div} def
/THETA \pst@VIIID@THETA\space def
/PHI \pst@VIIID@PHI\space def
/Dobs \pst@VIIID@Dobs\space def /Decran \pst@VIIID@Decran\space def /x0 \pst@VIIID@xO\space def /y0 \pst@VIIID@yO\space def /xLabelSep \psk@xlabelsep\space cm def
/yLabelSep \psk@ylabelsep\space cm def
/ColorFace1 {\psk@IIID@ColorFaceOne} def
/ColorFace2 {\psk@IIID@ColorFaceTwo} def
/ColorFace3 {\psk@IIID@ColorFaceThree} def
/ColorFace4 {\psk@IIID@ColorFaceFive} def
/ColorFace5 {\psk@IIID@ColorFaceFour} def
/ColorFace6 {\psk@IIID@ColorFaceSix} def
/ColorFace7 {\psk@IIID@ColorFaceSeven} def
/ColorFace8 {\psk@IIID@ColorFaceEight} def
/ColorFacette {\psk@IIID@ColorFacette} def
\ifPst@arete
/Trace_arete {facette
1 setlinewidth
0 setgray
stroke } def \else
/Trace_arete { null} def \fi
/xLight {\pst@VIIID@thetaLight\space cos
\pst@VIIID@phiLight\space cos mul
\pst@VIIID@dLight\space mul} bind def
/yLight {\pst@VIIID@thetaLight\space sin
\pst@VIIID@phiLight\space cos mul
\pst@VIIID@dLight\space mul} bind def
/zLight {\pst@VIIID@phiLight\space sin
\pst@VIIID@dLight\space mul} bind def
/H_S {\pst@VIIID@hsbcolor} def
\ifPst@todraw /toDraw {facette 0 setgray stroke} def \else /toDraw { } def\fi
\ifPst@nocolor /nocolor {1 setgray fill} def \else /nocolor {H_S CosCouleur sethsbcolor fill } def\fi
\ifPst@visibility /condition { PSfacette 0 gt } def \else /condition { PSfacette 0 le} def \fi
/Sin1 {THETA sin} bind def
/Sin2 {PHI sin} bind def
/Cos1 {THETA cos} bind def
/Cos2 {PHI cos} bind def
/Cos1Sin2 {Cos1 Sin2 mul} bind def
/Sin1Sin2 {Sin1 Sin2 mul} bind def
/Cos1Cos2 {Cos1 Cos2 mul} bind def
/Sin1Cos2 {Sin1 Cos2 mul} bind def
/XpointVue {Dobs Cos1Cos2 mul} bind def
/YpointVue {Dobs Sin1Cos2 mul} bind def
/ZpointVue {Dobs Sin2 mul} bind def
/3dto2d {
6 dict begin
/Zcote exch def
/Yordonnee exch def
/Xabscisse exch def
/xObservateur Xabscisse Sin1 mul neg Yordonnee Cos1 mul add def
/yObservateur Xabscisse Cos1Sin2 mul neg Yordonnee Sin1Sin2 mul sub Zcote Cos2 mul add def
/zObservateur Xabscisse neg Cos1Cos2 mul Yordonnee Sin1Cos2 mul sub Zcote Sin2 mul sub Dobs add def
Decran xObservateur mul zObservateur div cm Decran yObservateur mul zObservateur div cm end} def
/RotX \psk@IIID@RotX\space def
/RotY \psk@IIID@RotY\space def
/RotZ \psk@IIID@RotZ\space def
/translation {\psk@IIID@translation} def
translation /vz exch def /vy exch def /vx exch def
/c2 {RotY cos} bind def
/s2 {RotY sin} bind def
/c3 {RotZ cos} bind def
/s3 {RotZ sin} bind def
/c1 {RotX cos} bind def
/s1 {RotX sin} bind def
/M11 {c2 c3 mul} bind def
/M12 {c3 s1 mul s2 mul c1 s3 mul sub} bind def
/M13 {c1 c3 mul s2 mul s1 s3 mul add} bind def
/M21 {c2 s3 mul} bind def
/M22 {s1 s2 mul s3 mul c1 c3 mul add} bind def
/M23 {s3 s2 mul c1 mul c3 s1 mul sub} bind def
/M31 {s2 neg} bind def
/M32 {s1 c2 mul} bind def
/M33 {c1 c2 mul} bind def
/CalculsPointsAfterTransformations {
3 dict begin
M11 Xpoint mul M12 Ypoint mul add M13 Zpoint mul add vx add
M21 Xpoint mul M22 Ypoint mul add M23 Zpoint mul add vy add
M31 Xpoint mul M32 Ypoint mul add M33 Zpoint mul add vz add
end
} def
/SizeFont {\psk@fontscale\space cm} bind def
SizeFont 0 eq { /SizeFont 0.001 def} if Font findfont SizeFont scalefont setfont
>
\pst@def{WARP}</warpmove{
2 index {
newpath
} if
warp moveto
pop false
} bind def
/warpline {
warp lineto
} bind def
/warpcurve {
6 2 roll warp
6 2 roll warp
6 2 roll warp
curveto
} bind def
/warpit {
true
{ warpmove } { warpline } { warpcurve } { closepath } pathforall
pop
} bind def
>
\pst@def{PathForAll}</warp {
4 dict begin
/Ypoint exch def /Xpoint exch def 2dto3d
/Zpoint exch def
/Ypoint exch def
/Xpoint exch def
CalculsPointsAfterTransformations
3dto2d
end
} bind def
\tx@WARP
warpit >
\pst@def{PathForTexT}</warptxt exch def /warpwidth {warptxt stringwidth pop} bind def /warpheigth {SizeFont 2 div} bind def /warpxhalf warpwidth 2 div def /warpyhalf warpheigth 2 div def /x0 warpxhalf neg cm_1 def /y0 0 def /warp {
4 dict begin
/Ypoint exch cm_1 def
/Xpoint exch cm_1 x0 add def
2dto3d
/Zpoint exch def
/Ypoint exch def
/Xpoint exch def
CalculsPointsAfterTransformations
3dto2d
end
} bind def
\tx@WARP >
\pst@def{TransformPlan}< /K_theta exch def /K_phi exch def /zO' exch def
/yO' exch def
/xO' exch def
/C11 {K_theta sin neg} def
/C12 {K_theta cos K_phi sin mul neg} bind def
/C21 {K_theta cos} bind def
/C22 {K_phi sin K_theta sin mul neg } bind def
/C31 {K_phi cos} bind def
/2dto3d{
3 dict begin
C11 Xpoint mul C12 Ypoint mul add xO' add C21 Xpoint mul C22 Ypoint mul add yO' add C31 Ypoint mul zO' add
end }
def
>
\def\textThreeDput{\def\pst@par{}\pst@object{textThreeDput}}
\def\textThreeDput@i{\@ifnextchar({\textThreeDput@ii}{\textThreeDput@ii(0,0,0)}}
\def\textThreeDput@ii(#1,#2,#3)#4{{ \begin@ClosedObj
\addto@pscode{ \tx@parametresIIID
\ifPst@visibility /Condition { gt } def \else /Condition { le } def \fi
/warptxt (#4) def /warpwidth {warptxt stringwidth pop} bind def /warpheigth {SizeFont 2 div} bind def /warpxhalf warpwidth 2 div def /warpyhalf warpheigth 2 div def /x0 x0 warpxhalf neg cm_1 add def /y0 y0 warpyhalf neg cm_1 add def
/warp {
4 dict begin
/Ypoint exch cm_1 y0 add def
/Xpoint exch cm_1 x0 add def
2dto3d
/Zpoint exch def
/Ypoint exch def
/Xpoint exch def
CalculsPointsAfterTransformations
3dto2d
end
} bind def
\psk@normale
/k_theta exch def
/k_phi exch def
/nx {k_phi cos k_theta cos mul} bind def
/ny {k_phi cos k_theta sin mul} bind def
/nz {k_phi sin } bind def
/Zpoint nz def
/Ypoint ny def
/Xpoint nx def
CalculsPointsAfterTransformations
/Nz exch vz sub def
/Ny exch vy sub def
/Nx exch vx sub def
/Zpoint #3 def
/Ypoint #2 def
/Xpoint #1 def
CalculsPointsAfterTransformations
/ZO exch def
/YO exch def
/XO exch def
/Vx {XpointVue XO sub} bind def
/Vy {YpointVue YO sub} bind def
/Vz {ZpointVue ZO sub} bind def
/PS {Nx Vx mul Ny Vy mul Nz Vz mul add add} bind def
PS 0 Condition { #1
#2
#3
\psk@normale
\tx@TransformPlan
\tx@WARP
0 0 moveto
warptxt true charpath warpit
} if
} \end@ClosedObj} \ignorespaces}
\def\planThreeDput{\def\pst@par{}\pst@object{planThreeDput}}
\def\planThreeDput@i{\@ifnextchar({\planThreeDput@ii}{\planThreeDput@ii(0,0,0)}}
\def\planThreeDput@ii(#1,#2,#3)#4{{ \begin@OpenObj
\addto@pscode{ \tx@parametresIIID
\ifPst@visibility /Condition { gt } def \else /Condition { le } def \fi
/warp {
4 dict begin
/Ypoint exch def
/Xpoint exch def
2dto3d
/Zpoint exch def
/Ypoint exch def
/Xpoint exch def
CalculsPointsAfterTransformations
3dto2d
end
} bind def
#1
#2
#3
\psk@normale
\tx@TransformPlan
\psk@normale
/k_theta exch def
/k_phi exch def
/nx {k_phi cos k_theta cos mul} bind def
/ny {k_phi cos k_theta sin mul} bind def
/nz {k_phi sin } bind def
/Zpoint nz def
/Ypoint ny def
/Xpoint nx def
CalculsPointsAfterTransformations
/Nz exch vz sub def
/Ny exch vy sub def
/Nx exch vx sub def
/Zpoint #3 def
/Ypoint #2 def
/Xpoint #1 def
CalculsPointsAfterTransformations
/ZO exch def
/YO exch def
/XO exch def
/Vx {XpointVue XO sub} bind def
/Vy {YpointVue YO sub} bind def
/Vz {ZpointVue ZO sub} bind def
/PS {Nx Vx mul Ny Vy mul Nz Vz mul add add} bind def
PS 0 Condition { #4
\tx@WARP
warpit
} if
} \end@OpenObj} \ignorespaces}
\def\pst@getcoorsIIID#1{\def\pst@aftercoors{#1}\def\pst@coorprev{}\pst@@getcoorsIIID}
\def\pst@@getcoorsIIID(#1){\ifx\pst@coorprev\@empty
\else
\pst@getcoor{\pst@coorprev}{\pst@tempa} \pst@@getcoor{#1} \addto@pscode{\pst@getcoorsIIID@PsCode}\fi
\def\pst@coorprev{#1}\@ifnextchar({\pst@@getcoorsIIID}{\pst@aftercoors}}
\def\PslineIIID{\pst@object{PslineIIID}}
\def\PslineIIID@i{\showpointsfalse
\def\pst@getcoorsIIID@PsCode{\pst@tempa \pst@coor
/YB ED /XB ED /YA ED /XA ED
/Xpoint XA cm_1 def
/Ypoint YA cm_1 def
2dto3d
/Zpoint exch def
/Ypoint exch def
/Xpoint exch def
CalculsPointsAfterTransformations
3dto2d
moveto
/Xpoint XB cm_1 def
/Ypoint YB cm_1 def
2dto3d
/Zpoint exch def
/Ypoint exch def
/Xpoint exch def
CalculsPointsAfterTransformations
3dto2d
lineto }\pst@getarrows{\begin@OpenObj
\addto@pscode{
\tx@parametresIIID
\pst@VIIID@origine\space
\psk@normale
\tx@TransformPlan}\pst@getcoorsIIID{\end@OpenObj}}}
\def\Grille(#1,#2)(#3,#4){
/Font /Helvetica /ISOfont ReEncode /ISOfont def
/str 20 string def
/incrementx {#3 #1 sub #3 #1 sub abs div} bind def
#1 incrementx #3 {
2 setlinecap
/x exch def
newpath
x #2 moveto
x #4 lineto
\tx@PathForAll
\psk@gridwidth SLW
\pst@usecolor\psgridcolor
stroke
x cvi str cvs
\tx@PathForTexT
x cm xLabelSep 2 div add yLabelSep moveto
warptxt true charpath warpit
0 setgray
fill
} for
/incrementy {#4 #2 sub #4 #2 sub abs div} bind def
#2 incrementy #4 {
/y exch def
newpath
#1 y moveto
#3 y lineto
\tx@PathForAll
\psk@gridwidth SLW
\pst@usecolor\psgridcolor
stroke
y cvi str cvs
\tx@PathForTexT
xLabelSep y cm moveto
warptxt true charpath warpit
0 setgray
fill
} for }
\def\axesIIID{\def\pst@par{}\pst@object{axesIIID}}
\def\axesIIID@i(#1,#2,#3){\begin@SpecialObj
\addto@pscode{ \tx@parametresIIID
1 setlinecap
0 0 moveto
#1 0 0 3dto2d lineto
2 setlinewidth
1 0 0 setrgbcolor
stroke
#1 0.4 sub -0.2 0 3dto2d moveto
#1 0 0 3dto2d lineto
#1 0.4 sub 0.2 0 3dto2d lineto
stroke
0 0 moveto
0 #2 0 3dto2d lineto
2 setlinewidth
0 1 0 setrgbcolor
stroke
-0.2 #2 0.4 sub 0 3dto2d moveto
0 #2 0 3dto2d lineto
0.2 #2 0.4 sub 0 3dto2d lineto
stroke
0 0 moveto
0 0 #3 3dto2d lineto
2 setlinewidth
0 0 1 setrgbcolor
stroke
-0.2 0 #3 0.4 sub 3dto2d moveto
0 0 #3 3dto2d lineto
0.2 0 #3 0.4 sub 3dto2d lineto
stroke
}\end@SpecialObj}
\def\NodeIIItoIID{\def\pst@par{}\pst@object{NodeIIItoIID}}
\def\NodeIIItoIID@i(#1,#2)#3{{ \begin@ClosedObj
\pnode(!
\tx@parametresIIID
\pst@VIIID@origine\space \psk@normale
\tx@TransformPlan
/Xpoint #1 def
/Ypoint #2 def
2dto3d
/Zpoint exch def
/Ypoint exch def
/Xpoint exch def
CalculsPointsAfterTransformations
3dto2d
cm_1 exch cm_1 exch){#3} \end@ClosedObj
}\ignorespaces}
\def\pnodeXYZ{\def\pst@par{}\pst@object{pnodeXYZ}}
\def\pnodeXYZ@i(#1,#2,#3)#4{{ \begin@ClosedObj
\pnode(!
\tx@parametresIIID
#1
#2
#3
3dto2d
cm_1 exch cm_1 exch){#4} \end@ClosedObj
}\ignorespaces}
\def\pnodeSphericalCoor{\def\pst@par{}\pst@object{pnodeSphericalCoor}}
\def\pnodeSphericalCoor@i(#1,#2,#3)#4{{ \begin@ClosedObj
\pnode(!
\tx@parametresIIID
#1 #2 #3 #1 #3 cos mul #2 cos mul #1 #3 cos mul #2 sin mul #1 #3 sin mul 3dto2d
cm_1 exch cm_1 exch){#4} \end@ClosedObj
}\ignorespaces}
\catcode`\@=\PstAtCode\relax
\endinput

—
Syracuse — Dernière modification : 21 août 2006 (0.07s - 3788932 - 23 novembre 2008)