From: Manuel Date: Sat, 22 Oct 2011 08:47:43 +0000 (+0200) Subject: Des courbes (multi-foliums, etc), dont les équations sont du site de Robert Ferréol... X-Git-Url: https://melusine.eu.org/syracuse/G/git/?p=pst-anamorphosis.git;a=commitdiff_plain;h=6b214aeef4e36eef4ca1e319c53557b2412ccf7f Des courbes (multi-foliums, etc), dont les équations sont du site de Robert Ferréol, en anamorphose conique. Dans serie02. --- diff --git a/img/serie02/LISTE.txt b/img/serie02/LISTE.txt index c4b196f..faa7c28 100644 --- a/img/serie02/LISTE.txt +++ b/img/serie02/LISTE.txt @@ -5,3 +5,4 @@ parapluie.eps sinus.png rayures.png damier.png +foliums.png \ No newline at end of file diff --git a/img/serie02/foliums.pdf b/img/serie02/foliums.pdf new file mode 100644 index 0000000..64e8f63 Binary files /dev/null and b/img/serie02/foliums.pdf differ diff --git a/img/serie02/foliums.png b/img/serie02/foliums.png new file mode 100644 index 0000000..7aa9b3d Binary files /dev/null and b/img/serie02/foliums.png differ diff --git a/img/serie02/foliums.tex b/img/serie02/foliums.tex new file mode 100644 index 0000000..b89aeff --- /dev/null +++ b/img/serie02/foliums.tex @@ -0,0 +1,194 @@ +\documentclass[12pt]{article} +\usepackage{pst-anamorphosis-add,pst-plot,pst-grad} +\usepackage[a4paper]{geometry} + +\makeatletter +\def\psparametricplotA{\pst@object{parametricplotA}}% hv 2008-11-22 +\def\parametricplotA{\pst@object{parametricplotA}} +\def\parametricplotA@i#1#2{\@ifnextchar[{\parametricplotA@x{#1}{#2}}{\parametricplotA@x{#1}{#2}[]}} +\def\parametricplotA@x#1#2[#3]{\@ifnextchar[{\parametricplotA@xi{#1}{#2}[#3]}{\parametricplotA@xi{#1}{#2}[#3][]}} +\def\parametricplotA@xi#1#2[#3][#4]#5{% + \pst@killglue% + \begingroup% + \use@par% + \@nameuse{beginplot@\psplotstyle}% + \addto@pscode{% + \tx@optionsanamorphosis + \tx@optionsanamorphosisAdd + #3 %prefix PS code + \psplot@init + /t #1 def + /t1 #2 def + /dt t1 t sub \psk@plotpoints div def + /F@pstplot \ifPst@algebraic (#5) + \ifx\psk@PlotDerivative\@none\else + \psk@PlotDerivative\space { (t) tx@Derive begin Derive end } repeat + \fi\space + tx@AlgToPs begin AlgToPs end cvx + \else { #5 } \fi def + \ifPst@VarStep + /StillZero 0 def /LastNonZeroStep dt def + /F2@pstplot tx@Derive begin (#5) (t) Derive (t) Derive end + \ifx\psk@PlotDerivative\@none\else + \psk@PlotDerivative\space { (t) tx@Derive begin Derive end } repeat + \fi\space + tx@AlgToPs begin AlgToPs end cvx def + %% computation of the tolerance defined by plotpoints + /epsilon12 \ifx\psk@VarStepEpsilon\@default + tx@Derive begin F2@pstplot end Pyth + dt 3 exp abs mul + \else\psk@VarStepEpsilon\space 12 mul \fi def + /ComputeStep { + dup 1e-4 lt + { pop StillZero 2 ge { LastNonZeroStep 2 mul } { LastNonZeroStep } ifelse /StillZero StillZero 1 add def } + { epsilon12 exch div 1 3 div exp /StillZero 0 def } + ifelse } bind def + \fi + /xy { + \ifPst@algebraic F@pstplot \else #5 \fi + \pst@number\psyunit mul exch + \pst@number\psxunit mul exch + tx@anamorphosisPathDict begin Anamorphose end + } def + }% + \gdef\psplot@init{}% + \@pstfalse + \@nameuse{testqp@\psplotstyle}% + \if@pst\parametricplotA@ii{#4}\else\parametricplotA@iii{#4}\fi + \endgroup% + \ignorespaces} +% +\def\parametricplotA@ii#1{% para is the post code + \ifPst@VarStep% + \addto@pscode{% + mark xy \@nameuse{beginqp@\psplotstyle} + { F2@pstplot Pyth ComputeStep + t 2 copy add dup t1 gt {pop t1} if /t exch def F2@pstplot Pyth ComputeStep + /t 3 -1 roll def 2 copy gt { exch } if pop + /t t 3 -1 roll add dup t1 gt {pop t1} if def + xy \@nameuse{doqp@\psplotstyle} + t t1 eq { exit } if } loop}% + \else\pst@killglue% + \addto@pscode{% + /ps@Exit false def + xy \@nameuse{beginqp@\psplotstyle} + \psk@plotpoints 1 sub { + /t t dt add def + xy \@nameuse{doqp@\psplotstyle} + ps@Exit { exit } if + } repeat + ps@Exit not { + /t t1 def + xy \@nameuse{doqp@\psplotstyle} + } if + }% + \fi% + \addto@pscode{ #1 }% + \@nameuse{endqp@\psplotstyle}} +% +\def\parametricplotA@iii#1{% + \ifPst@VarStep% + \addto@pscode{% + /n 2 def + mark + { xy n 2 roll F2@pstplot Pyth + ComputeStep t 2 copy add dup t1 gt {pop t1} if + /t exch def F2@pstplot Pyth ComputeStep + /t 3 -1 roll def 2 copy gt { exch } if pop + /t t 3 -1 roll dup /LastNonZeroStep exch def add dup t1 gt {pop t1} if def /n n 2 add def + t t1 eq { exit } if } loop + xy n 2 roll}% + \else\pst@killglue% + \addto@pscode{ + mark + /n 2 def + \psk@plotpoints { + xy + n 2 roll + /n n 2 add def + /t t dt add def + } repeat + /t t1 def + xy + n 2 roll}% + \fi% + \addto@pscode{ #1 }% + \@nameuse{endplot@\psplotstyle}} +% +\makeatother +\begin{document} +\begin{center} +\begin{pspicture}(-6,-6)(6,6) +\pscircle[doubleline=true]{3} +\psset{type=conical} +\parametricplot[plotpoints=3600,linecolor=red,linewidth=0.5mm]{0}{360}{% + /Radius 0.75 t 4 mul cos mul def + Radius t cos mul 1 add + Radius t sin mul + } +\parametricplotA[plotpoints=3600,linecolor=red,linewidth=0.5mm]{0}{360}{% + /Radius 0.75 t 4 mul cos mul def + Radius t cos mul 1 add + Radius t sin mul + } +\parametricplot[plotpoints=3600,linecolor=blue,linewidth=0.5mm]{0}{360}{% + /Radius 1 t 5 mul cos mul def + Radius t cos mul -1.25 add + Radius t sin mul + } +\parametricplotA[plotpoints=3600,linecolor=blue,linewidth=0.5mm]{0}{360}{% + /Radius 1 t 5 mul cos mul def + Radius t cos mul -1.25 add + Radius t sin mul + } +\parametricplot[plotpoints=3600,fillstyle=solid,fillcolor=green!50]{0}{360}{% + /Radius 1 t 2 mul sin t 6 mul sin 4 div add mul def + Radius t cos mul + Radius t sin mul 1.5 add + } +\parametricplotA[plotpoints=3600,fillstyle=solid,fillcolor=green!50]{0}{360}{% + /Radius 1 t 2 mul sin t 6 mul sin 4 div add mul def + Radius t cos mul + Radius t sin mul 1.5 add + } +\parametricplot[plotpoints=3600,fillstyle=gradient,gradend=yellow,gradbegin=white]{0}{360}{% + /Radius 1 t cos 3 exp mul def + Radius t sin mul 0 add + Radius t cos mul 1 add neg + } +\parametricplotA[plotpoints=3600,fillstyle=gradient,gradbegin=yellow,gradend=white]{0}{360}{% + /Radius 1 t cos 3 exp mul def + Radius t sin mul 0 add + Radius t cos mul 1 add neg + } +{\psset{linewidth=0.5\pslinewidth,linecolor={[rgb]{1 0.75 0}}} +\multido{\n=0.25+0.25,\N=0.25+0.25}{9}{% + \pnode(! \n\space -2.25){A} + \pnode(! \n\space 2.25){B} + \psline(A)(B) + \pslineA(A)(B) + \pnode(!-2.25 \N){A} + \pnode(!2.25 \N){B} + \pslineA(A)(B) + \psline(A)(B) + } +\multido{\n=-2.25+0.25,\N=-2.25+0.25}{9}{% + \pnode(! \n\space -2.25){A} + \pnode(! \n\space 2.25){B} + \psline(A)(B) + \pslineA(A)(B) + \pnode(!-2.25 \N){A} + \pnode(!2.25 \N){B} + \pslineA(A)(B) + \psline(A)(B) + } +\psline(-2.25,0)(2.25,0) +\psline(0,-2.25)(0,2.25) +\pslineA(0,-2.25)(0,-0.25) +\pslineA(0,2.25)(0,0.25) +\pslineA(-2.25,0)(-0.25,0) +\pslineA(2.25,0)(0.25,0)} +\psdot[dotstyle=x,dotsize=.2](0,0) +\end{pspicture} +\end{center} +\end{document} \ No newline at end of file