X-Git-Url: https://melusine.eu.org/syracuse/G/git/?a=blobdiff_plain;f=doc%2Ffig3d-anacon.tex;fp=doc%2Ffig3d-anacon.tex;h=7a16c85d3beeeefc36cbb98a394cc4b6614413b3;hb=b5bff73d413bccd45ba53b356f64421234755f4a;hp=0000000000000000000000000000000000000000;hpb=20addd135e50ad5d8338c5f2f295095d4ac6b408;p=pst-anamorphosis.git diff --git a/doc/fig3d-anacon.tex b/doc/fig3d-anacon.tex new file mode 100644 index 0000000..7a16c85 --- /dev/null +++ b/doc/fig3d-anacon.tex @@ -0,0 +1,135 @@ +\def\oeil{\psarc[linewidth=2pt](0,2.5){2.5}{215}{270}% +\psarc[linewidth=2pt](0,-2.5){2.5}{90}{140}% +\psarc(-2.5,0){1}{-30}{30}% +\psarc(0,0){1.75}{160}{200} +\psclip{% +\pscircle[linestyle=none](0,0){1.75}} +\pscircle[fillstyle=solid,fillcolor=lightgray](-2.5,0){0.9} +\endpsclip}% +\begin{center} +\psscalebox{0.8}{ +\begin{pspicture}(-7,-7)(7,10) +\newcommand\R{3} +\newcommand\hauteur{5} +\newcommand\pas{10} +\FPeval{\pasrad}{\pas*\FPpi/180} + \FPmul{\Largeur}{\R}{\pasrad} + \FPdiv{\largeur}{\Largeur}{2} +%Les coordonnées de viewpoint +\def\vx{1}\def\vy{-0.8}\def\vz{1} +\FPeval{\RH}{(\R)/(\hauteur)} + \FParctan{\phy}{\RH} + \FPeval{\OH}{sin(\phy)*\hauteur} + \FPeval{\zH}{sin(\phy)*\OH} + \FPeval{\OK}{cos(\phy)*\OH} + \FPeval{\generatrice}{root(2,(\hauteur*\hauteur)+(\R*\R))} +\psset{viewpoint={\vx} {\vy} {\vz}} +\ThreeDput[normal=0 0 1](0,0,0){%% +\psframe*[linecolor=gray!25](-10,-10)(10,10) +\psaxes(0,0)(-10,-10)(10,10) +\pscircle[doubleline=true]{3} +\psset{type=conical} +\multido{\n=-1.50+0.50}{7}{% + \pnode(! \n\space -2.50){A} + \pnode(! \n\space -0.50){B} + \psline[linecolor=green](A)(B) + \pslineA[linecolor=green](A)(B) + } +\multido{\N=-2.50+0.50}{5}{% + \pnode(!-1.50 \N){A} + \pnode(!1.50 \N){B} + \pslineA[linecolor=green](A)(B) + \psline[linecolor=green](A)(B) + } +% +\multido{\n=-1.50+0.50}{7}{% + \pnode(! \n\space 2.50){A} + \pnode(! \n\space 0.50){B} + \psline[linecolor=green](A)(B) + \pslineA[linecolor=green](A)(B) + } +\multido{\N=2.50+-0.50}{5}{% + \pnode(!-1.50 \N){A} + \pnode(!1.50 \N){B} + \pslineA[linecolor=green](A)(B) + \psline[linecolor=green](A)(B) + } +\multido{\n=-1.50+0.50}{7}{% + \pnode(! \n\space -2.50){A} + \pnode(! \n\space -0.50){B} + \psline(A)(B) + \pslineA(A)(B) + } +\multido{\N=-2.50+0.50}{5}{% + \pnode(!-1.50 \N){A} + \pnode(!1.50 \N){B} + \pslineA(A)(B) + \psline(A)(B) + } +\multido{\n=-1.50+0.50}{7}{% + \pnode(! \n\space 2.50){A} + \pnode(! \n\space 0.50){B} + \psline(A)(B) + \pslineA(A)(B) + } +\multido{\N=2.50+-0.50}{5}{% + \pnode(!-1.50 \N){A} + \pnode(!1.50 \N){B} + \pslineA(A)(B) + \psline(A)(B) + } +\psanamorphosis[type=conical,scale=-0.7 -0.7](0,1.5){tiger.eps} +\pstextA[fontsize=15,fillcolor=green,scale=1 -1](0,-0.5){Anamorphose} +\pscircle[doubleline=true]{3}} +\newcount\n \n=0 + \loop + \FPmul{\tempa}{\FPpi}{\the\n} + \FPdiv{\angle}{\tempa}{180} + \FPsin{\SIN}{\angle}\FPcos{\COS}{\angle} + \FPmul{\xH}{\COS}{\OK} + \FPmul{\yH}{\SIN}{\OK} + \FPdiv{\grise}{\the\n}{360} + \FPsub{\gris}{1}{\grise} + \FPdiv{\teinte}{\grise}{2} +\definecolor{gris}{cmyk}{\teinte,\teinte,\teinte,0} +%tester les faces visibles +%le produit scalaire du vecteur viewpoint et du vecteur normal à la face >0 ? +\FPeval{\costest}{(\vx)*\xH+(\vy)*\yH+(\vz)*\zH} + \FPifpos{\costest} + \ThreeDput[normal={\xH} {\yH} \zH](0,0,\hauteur){% + \pspolygon[linecolor=BleuCiel]%[fillstyle=solid,fillcolor=gris,dimen=outer]% + (0,0)(-\largeur,-\generatrice)(\largeur,-\generatrice)}\else{}\fi + \FPifneg{\costest} + \ThreeDput[normal={\xH} {\yH} \zH](0,0,\hauteur){% + \psline[linestyle=dashed,linecolor=gray](0,0)(\largeur,-\generatrice)}\else{}\fi + \ifnum\n<360 \advance\n by \pas +\repeat +%Dessin des faces de dessus et de dessous +%\FPifneg\vz +%face de dessous +%\ThreeDput[normal=0 0 -1](0,0,0){% +%\pscircle[fillstyle=solid,fillcolor=lightgray](0,0){\R}\rput(0,0){\Large\textbf{\textsf{Dessous}}}}\fi +\ThreeDput[normal=1 0 0](0,0,0){% +\psaxes(1,10) +\rput{90}(0,12){\oeil}% +{\boldmath +\red +\pnode(0,10){V} +\uput[0](V){$V$} +\pnode(0,5){S} +\uput[0](S){$S$} +\pnode(-1.5,2.5){I} +\uput[180](I){$I$} +\qdisk(I){2pt} +\pnode(-2,0){P} +\uput[135](P){$P$} +\pnode(-4.545,0){P'} +\uput[135](P'){$P'$} +\psset{linecolor=red} +\psline(V)(I)(P') +\pcline[nodesepB=2,nodesepA=1,linecolor=red,arrowsize=0.175,arrowinset=0.075]{->}(P')(I) +\pcline[nodesepB=4,nodesepA=1,linecolor=red,arrowsize=0.175,arrowinset=0.075]{->}(I)(V) +\psline[linestyle=dashed](I)(P)}}% +\end{pspicture} +} +\end{center} \ No newline at end of file