From: Jürgen Gilg Date: Fri, 21 Oct 2011 20:13:09 +0000 (+0200) Subject: Fait le point sur doc2 (liste des macros) et modification de layout POSSIBLE EXTENSIO... X-Git-Url: https://melusine.eu.org/syracuse/G/git/?a=commitdiff_plain;h=bb92a0897e22150bfa1457677d4ed7c7567fd479;p=pst-anamorphosis.git Fait le point sur doc2 (liste des macros) et modification de layout POSSIBLE EXTENSIONS... --- diff --git a/doc/NOMS.txt b/doc/NOMS.txt index f7887ed..3c30f7d 100644 --- a/doc/NOMS.txt +++ b/doc/NOMS.txt @@ -2,6 +2,8 @@ pst-anamorphosis-doc-part1.tex:Documentation th pst-anamorphosis-doc-part1.pdf:Documentation théorique (pdf) pst-anamorphosis-doc-part2.tex:Liste des macros et des options (tex) pst-anamorphosis-doc-part2.pdf:Liste des macros et des options (pdf) +possible_extensions.tex:Extensions possibles (tex) +possible_extensions.pdf:Extensions possibles (pdf) eiffel.jpg:La Tour Eiffel en anamorphose cylindrique (jpg) eiffel.eps:La Tour Eiffel en anamorphose cylindrique (eps) pst-anamorphosis.eps:Logo PST ANAMORPHOSIS (eps) diff --git a/doc/possible_extensions.pdf b/doc/possible_extensions.pdf index 28084f9..aefcd99 100644 Binary files a/doc/possible_extensions.pdf and b/doc/possible_extensions.pdf differ diff --git a/doc/possible_extensions.tex b/doc/possible_extensions.tex index 571b165..c3ac1df 100644 --- a/doc/possible_extensions.tex +++ b/doc/possible_extensions.tex @@ -1,9 +1,82 @@ -\documentclass[12pt]{article} -\usepackage{pst-anamorphosis-add,pst-plot} +\listfiles +\documentclass[a4paper,fleqn]{article} +\usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} -\usepackage[ansinew]{inputenc} \usepackage{amsmath,amssymb} -\usepackage[a4paper]{geometry} +\usepackage[frenchb]{babel} +%\usepackage{mathptmx} +\usepackage[charter]{mathdesign} +\usepackage[margin=2.5cm]{geometry} +\usepackage{multicol} +\usepackage{listings} +\usepackage[svgnames]{xcolor} +\usepackage{showexpl} +\usepackage[nomessages]{fp} +\usepackage{xspace} +\usepackage{pst-plot,pst-solides3d,pst-anamorphosis-add,pst-3d} +\usepackage{pst-grad} +\usepackage[absolute,notitlepage]{pst-abspos} +\usepackage{url} + +\psset{path=C:/Dokumente und Einstellungen/Besitzer/Desktop/bergen/bergen/} +%\def\epsRoot{C:/Dokumente und Einstellungen/Besitzer/Desktop/bergen/bergen/} + +\renewcommand{\ttdefault}{lmtt} + +\definecolor{syracuseGRIS}{HTML}{C1C1C1} +\definecolor{syracuseVERT}{HTML}{029235} + +\definecolor{sepia}{rgb}{1,0.8,0.8} +\definecolor{grisclair}{rgb}{0.8,0.8,0.8} +\definecolor{BleuCiel}{cmyk}{0.2,0,0,0} +\definecolor{OrangePale}{cmyk}{0,0.2,0.4,0} + +\lstset{% + language=[LaTeX]TeX,% + float=hbp,% + basicstyle=\ttfamily\small, % + texcsstyle=*\color{blue},% + identifierstyle=\color{black}, % + keywordstyle=\color{syracuseVERT}, % + otherkeywords={$, \{, \}, \[, \]}, + stringstyle=\color{syracuseVERT}, % + commentstyle=\color{syracuseVERT}, % + backgroundcolor=\color{syracuseGRIS!30},% + columns=flexible, % + tabsize=4, % + frame=single, % + %frame=shadowbox, % + %rulesepcolor=\color{syracuseGRIS!30},% + extendedchars=true, % + showspaces=false, % + showstringspaces=false, % + numbers=left, + numbersep=0.8em, + numberstyle=\tiny, % + breaklines=true, % + breakautoindent=true,% + captionpos=b,% + xleftmargin=1em,% + sensitive=true,% + morekeywords=[6]{pspicture,center},% + keywordstyle=[6]\color{FireBrick},% + %morekeywords=[7]{(,)},% + %keywordstyle=[7]\color{syracuseVERT} +} + +\renewcommand{\lstlistingname}{Source} +\renewcommand{\labelitemi}{$\bullet$} + + +\newcommand\cs[1]{\texttt{\char`\\#1}} +\newcommand\file[1]{\texttt{#1}} + +\parindent0pt +\parskip5pt + +\def\syracuseTitle{Les anamorphoses : extensions possibles} +%\def\syracuseGraphic{eiffel2} + \makeatletter \def\psparametricplotA{\pst@object{parametricplotA}}% hv 2008-11-22 @@ -182,42 +255,92 @@ tx@anamorphosisPathDict begin Anamorphose end translate}}}% % -\title{pst-anamorphosis : extensions possibles} -\author{Jürgen Gilg, Manuel Luque, Jean-Michel Sarlat} -\date{21 octobre 2011} + + + \begin{document} -\maketitle + +%% === BEGIN == Page de garde ================================================= + +\thispagestyle{empty} + +\pstPutAbs(0,-29.7){% +\begin{pspicture}(0,0)(21,29.7) +\pspolygon[fillstyle=solid,linecolor=syracuseVERT,fillcolor=syracuseVERT](0,0)(10.5,14.85)(21,0) +\pspolygon[fillstyle=solid,linecolor=syracuseGRIS,fillcolor=syracuseGRIS](0,0)(21,29.7)(0,29.7) +\pspolygon[fillstyle=solid,linecolor=syracuseGRIS!50,fillcolor=syracuseGRIS!50](21,0)(10.5,14.85)(21,29.7) +\end{pspicture} +} +\pstPutAbs(2.5,-3.75){% +\includegraphics[scale=1]{pst-anamorphosis} +} +\pstPutAbs(2.5,-5.25){% +\LARGE \textbf{\syracuseTitle} +} +\pstPutAbs(2.5,-13.5){% +\begin{pspicture}(0,0)(12,12) +\rput(4,4){\includegraphics[height=8cm]{Eiffel}} +%\rput(4,4){\includegraphics[height=8cm]{\syracuseGraphic}} +%\psframe(0,0)(8,8) +\end{pspicture} +} +\pstPutAbs(12.5,-15){% +\parbox{0.4\textwidth}{\Large\raggedleft + {\LARGE\textbf{Contributeurs}}\\[0.2cm] + J\"{u}rgen \textsc{Gilg}\\ + Manuel \textsc{Luque}\\ + Jean-Michel \textsc{Sarlat} +}} +\vfill +\begin{center} +\textcolor{white}{\textbf{\today}}\\[0.3cm] +\textcolor{white}{\url{http://melusine.eu.org/syracuse/G/pstricks/}}\\ +\includegraphics[scale=0.4]{logo_syracuse} +\end{center} + +%% == END == Page de garde ==================================================== + +\newpage + + \begin{abstract} -Il est relativement facile d'adapter les commandes de \textsf{PStricks} à \textsf{pst-anamorphosis}. C'est ainsi que la plupart des macros de \textsf{pst-anamorphosis-add} sont des adaptations de celles de \textsf{PStricks}. Toutes ne l'on pas été pour ne pas alourdir inutilement le package. Nous allons détailler sur un exemple la façon de procéder. +Il est relativement facile d'adapter les commandes de \textsf{PStricks} \`{a} \textsf{pst-anamorphosis}. C'est ainsi que la plupart des macros de \textsf{pst-anamorphosis-add} sont des adaptations de celles de \textsf{PStricks}. Toutes ne l'on pas \'{e}t\'{e} pour ne pas alourdir inutilement le package. Nous allons d\'{e}tailler sur un exemple la fa\c{c}on de proc\'{e}der. -Remarque : toutes les macros ne sont pas adaptables, cela serait le cas si les anamorphoses transformaient une ligne droite en une ligne droite. Or, à part la perspective, ce n'est pas le cas. En conséquence, \verb+\psline+, \verb+\psframe+, \verb+\pspolygon+ doivent être réécrits en divisant le segment initial en un grand nombre de petits segments : pour \verb+\pslineA+ par exemple chaque segment initial est divisé en 200 parties et ceci quelle que soit sa longueur, dans l'idéal il faudrait tenir compte de la longueur du segment avant de choisir le nombre de segmentations. +Remarque : toutes les macros ne sont pas adaptables, cela serait le cas si les anamorphoses transformaient une ligne droite en une ligne droite. Or, \`{a} part la perspective, ce n'est pas le cas. En cons\'{e}quence, \verb+\psline+, \verb+\psframe+, \verb+\pspolygon+ doivent \^{e}tre r\'{e}\'{e}crits en divisant le segment initial en un grand nombre de petits segments : pour \verb+\pslineA+ par exemple chaque segment initial est divis\'{e} en 200 parties et ceci quelle que soit sa longueur, dans l'id\'{e}al il faudrait tenir compte de la longueur du segment avant de choisir le nombre de segmentations. \end{abstract} + + \section{\textbackslash{}psparametricplotA} + \subsection{Adaptation} -À partir d'une copie de \textbackslash{}\textsf{psparametricplot} : + +\`{A} partir d'une copie de \textbackslash{}\textsf{psparametricplot} : \begin{enumerate} \item On remplace parout \textsf{psparametricplot} par \textsf{psparametricplotA} ; \item dans le premier \verb+\addto@pscode{%+ - \begin{verbatim} + \begin{lstlisting} \addto@pscode{% \tx@optionsanamorphosis \tx@optionsanamorphosisAdd #3 %prefix PS code \psplot@init - \end{verbatim} - on introduit juste au début les variables de \textsf{pst-anamorphosis} ; + \end{lstlisting} + on introduit juste au d\'{e}but les variables de \textsf{pst-anamorphosis} ; \item et pour terminer dans \verb+/xy {+: -\begin{verbatim} +\begin{lstlisting} /xy { \ifPst@algebraic F@pstplot \else #5 \fi \pst@number\psyunit mul exch \pst@number\psxunit mul exch tx@anamorphosisPathDict begin Anamorphose end } def -\end{verbatim} - on insère à la fin les calculs propres à l'anamorphose. C'est terminé, la macro est opérationnelle ! +\end{lstlisting} + on ins\`{e}re \`{a} la fin les calculs propres \`{a} l'anamorphose. C'est termin\'{e}, la macro est op\'{e}rationnelle ! \end{enumerate} + + \subsection{Exemple} + \begin{center} \begin{pspicture}(-6,-6)(6,6) \pscircle[doubleline=true]{3} @@ -273,7 +396,7 @@ Remarque : toutes les macros ne sont pas adaptables, cela serait le cas si les a \psdot[dotstyle=x,dotsize=.2](0,0) \end{pspicture} \end{center} -\begin{verbatim} +\begin{lstlisting} \parametricplotA[plotpoints=3600,linecolor=red,linewidth=1mm]{0}{360}{% /Radius 1.5 0.5 t 10 mul sin mul add def Radius t cos mul @@ -283,9 +406,12 @@ Remarque : toutes les macros ne sont pas adaptables, cela serait le cas si les a /Radius 1.5 0.5 t 10 mul sin mul add def Radius t cos mul Radius t sin mul -\end{verbatim} +\end{lstlisting} + + \section{\textbackslash{}psframeA} -\verb+\psframeA(x1,y1)(x2,y2)+ a les mêmes propriétés que \verb+\psframe+ + +\verb+\psframeA(x1,y1)(x2,y2)+ a les m\^{e}mes propri\'{e}t\'{e}s que \verb+\psframe+ \begin{center} \begin{pspicture}(-6,-6)(6,6.5) \psset{type=conical,Rmirror=3} @@ -322,7 +448,7 @@ Remarque : toutes les macros ne sont pas adaptables, cela serait le cas si les a \end{psclip} \end{pspicture} \end{center} -\begin{verbatim} +\begin{lstlisting} \multido{\ry=-2.75+1,\rY=-2.25+1}{6}{ \multido{\n=-2.75+1.00,\N=-2.25+1.00}{7}{% \psframeA[fillstyle=solid,fillcolor=red,linecolor=red](\n,\ry)(\N,\rY)} @@ -331,9 +457,12 @@ Remarque : toutes les macros ne sont pas adaptables, cela serait le cas si les a \multido{\n=-3.25+1.00,\N=-2.75+1.00}{7}{% \psframeA[fillstyle=solid,fillcolor=blue,linecolor=blue](\n,\ry)(\N,\rY)} } -\end{verbatim} +\end{lstlisting} + + \section{\textbackslash{}pspolygonA} -En réalité la macro \verb+pspolygonA+ n'a pas été écrite. En effet il suffit de servir de \verb+\pslineA+ et de boucler le chemin en revenant au point origine. + +En r\'{e}alit\'{e} la macro \verb+pspolygonA+ n'a pas \'{e}t\'{e} \'{e}crite. En effet il suffit de servir de \verb+\pslineA+ et de boucler le chemin en revenant au point origine. \begin{center} \begin{pspicture}(-5,-5)(5,5) \psset{type=conical,Rmirror=3} @@ -348,7 +477,7 @@ En r \psdot[dotstyle=x](0,0) \end{pspicture} \end{center} -\begin{verbatim} +\begin{lstlisting} \begin{pspicture}(-5,-5)(5,5) \psset{type=conical,Rmirror=3} \pspolygon[linecolor=red,linewidth=1mm](2.5;30)(2.5;90)(2.5;150)(2.5;210)(2.5;270)(2.5;330) @@ -361,6 +490,6 @@ En r \pscircle[doubleline=true]{3} \psdot[dotstyle=x](0,0) \end{pspicture} -\end{verbatim} -On remarquera que le \verb+\rput(1.25,1)+ doit être remplacé par un calcul adapté. La macro \verb+\rputA+ n'a pas été définie. +\end{lstlisting} +On remarquera que le \verb+\rput(1.25,1)+ doit \^{e}tre remplac\'{e} par un calcul adapt\'{e}. La macro \verb+\rputA+ n'a pas \'{e}t\'{e} d\'{e}finie. \end{document} \ No newline at end of file diff --git a/doc/pst-anamorphosis-doc-part2.pdf b/doc/pst-anamorphosis-doc-part2.pdf new file mode 100644 index 0000000..de643d5 Binary files /dev/null and b/doc/pst-anamorphosis-doc-part2.pdf differ diff --git a/doc/pst-anamorphosis-doc-part2.tex b/doc/pst-anamorphosis-doc-part2.tex index c6fe942..ec7f55b 100644 --- a/doc/pst-anamorphosis-doc-part2.tex +++ b/doc/pst-anamorphosis-doc-part2.tex @@ -1,35 +1,150 @@ -\documentclass[12pt]{article} +\listfiles +\documentclass[a4paper,fleqn]{article} +\usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} -\usepackage[ansinew]{inputenc} -\usepackage[french]{babel} -\usepackage{pst-anamorphosis-add} \usepackage{amsmath,amssymb} -\usepackage[a4paper]{geometry} +\usepackage[frenchb]{babel} +%\usepackage{mathptmx} +\usepackage[charter]{mathdesign} +\usepackage[margin=2.5cm]{geometry} +\usepackage{multicol} +\usepackage{listings} +\usepackage[svgnames]{xcolor} +\usepackage{showexpl} +\usepackage[nomessages]{fp} +\usepackage{xspace} +\usepackage{pst-plot,pst-solides3d,pst-anamorphosis-add,pst-3d} +\usepackage{pst-grad} +\usepackage[absolute,notitlepage]{pst-abspos} \usepackage{url} -\title{Liste des macros et des options de `\textsf{pst-anamorphosis}'} -\author{Jürgen Gilg, Manuel Luque, Jean-Michel Sarlat} -\date{16 octobre 2011} + +\psset{path=C:/Dokumente und Einstellungen/Besitzer/Desktop/bergen/bergen/} +%\def\epsRoot{C:/Dokumente und Einstellungen/Besitzer/Desktop/bergen/bergen/} + +\renewcommand{\ttdefault}{lmtt} + +\definecolor{syracuseGRIS}{HTML}{C1C1C1} +\definecolor{syracuseVERT}{HTML}{029235} + +\definecolor{sepia}{rgb}{1,0.8,0.8} +\definecolor{grisclair}{rgb}{0.8,0.8,0.8} +\definecolor{BleuCiel}{cmyk}{0.2,0,0,0} +\definecolor{OrangePale}{cmyk}{0,0.2,0.4,0} + +\lstset{% + language=[LaTeX]TeX,% + float=hbp,% + basicstyle=\ttfamily\small, % + texcsstyle=*\color{blue},% + identifierstyle=\color{black}, % + keywordstyle=\color{syracuseVERT}, % + otherkeywords={$, \{, \}, \[, \]}, + stringstyle=\color{syracuseVERT}, % + commentstyle=\color{syracuseVERT}, % + backgroundcolor=\color{syracuseGRIS!30},% + columns=flexible, % + tabsize=4, % + frame=single, % + %frame=shadowbox, % + %rulesepcolor=\color{syracuseGRIS!30},% + extendedchars=true, % + showspaces=false, % + showstringspaces=false, % + numbers=left, + numbersep=0.8em, + numberstyle=\tiny, % + breaklines=true, % + breakautoindent=true,% + captionpos=b,% + xleftmargin=1em,% + sensitive=true,% + morekeywords=[6]{pspicture,center},% + keywordstyle=[6]\color{FireBrick},% + %morekeywords=[7]{(,)},% + %keywordstyle=[7]\color{syracuseVERT} +} + +\renewcommand{\lstlistingname}{Source} +\renewcommand{\labelitemi}{$\bullet$} + + +\newcommand\cs[1]{\texttt{\char`\\#1}} +\newcommand\file[1]{\texttt{#1}} + +\parindent0pt +\parskip5pt + +\def\syracuseTitle{Les anamorphoses : liste des macros et des options} +%\def\syracuseGraphic{eiffel2} + + \begin{document} -\maketitle + +%% === BEGIN == Page de garde ================================================= + +\thispagestyle{empty} + +\pstPutAbs(0,-29.7){% +\begin{pspicture}(0,0)(21,29.7) +\pspolygon[fillstyle=solid,linecolor=syracuseVERT,fillcolor=syracuseVERT](0,0)(10.5,14.85)(21,0) +\pspolygon[fillstyle=solid,linecolor=syracuseGRIS,fillcolor=syracuseGRIS](0,0)(21,29.7)(0,29.7) +\pspolygon[fillstyle=solid,linecolor=syracuseGRIS!50,fillcolor=syracuseGRIS!50](21,0)(10.5,14.85)(21,29.7) +\end{pspicture} +} +\pstPutAbs(2.5,-3.75){% +\includegraphics[scale=1]{pst-anamorphosis} +} +\pstPutAbs(2.5,-5.25){% +\LARGE \textbf{\syracuseTitle} +} +\pstPutAbs(2.5,-13.5){% +\begin{pspicture}(0,0)(8,8) +\rput(4,4){\includegraphics[height=8cm]{eiffel}} +%\rput(4,4){\includegraphics[height=8cm]{\syracuseGraphic}} +%\psframe(0,0)(8,8) +\end{pspicture} +} +\pstPutAbs(12.5,-15){% +\parbox{0.4\textwidth}{\Large\raggedleft + {\LARGE\textbf{Contributeurs}}\\[0.2cm] + J\"{u}rgen \textsc{Gilg}\\ + Manuel \textsc{Luque}\\ + Jean-Michel \textsc{Sarlat} +}} +\vfill +\begin{center} +\textcolor{white}{\textbf{\today}}\\[0.3cm] +\textcolor{white}{\url{http://melusine.eu.org/syracuse/G/pstricks/}}\\ +\includegraphics[scale=0.4]{logo_syracuse} +\end{center} + +%% == END == Page de garde ==================================================== + +\newpage + + + \begin{abstract} -Le package `\textsf{pst-anamorphosis}' est composé, actuellement, de \mbox{deux~parties~:} +Le package `\textsf{pst-anamorphosis}' est compos\'{e}, actuellement, de \mbox{deux~parties~:} \begin{itemize} - \item \textsf{`pst-anamorphosis}' qui permet d'afficher l'anamorphose d'un fichier au format .eps ; - \item \textsf{`pst-anamorphosis-add}' qui est son complément et qui adapte certaines macros de \textsf{PStricks} comme \verb+\psline+ et d'autres détaillées par la suite, au tracé d'anamorphoses personnelles dessinées avec ces commandes. De plus, cette partie permet l'affichage de texte anamorphosé et de dessins au format \textsf{.pst} c'est-à-dire composé de commandes \textsf{PStricks}. + \item `\textsf{pst-anamorphosis}' qui permet d'afficher l'anamorphose d'un fichier au format \textsf{.eps} ; + \item `\textsf{pst-anamorphosis-add}' qui est son compl\'{e}ment et qui adapte certaines macros de \textsf{PStricks} comme \verb+\psline+ et d'autres d\'{e}taill\'{e}es par la suite, au trac\'{e} d'anamorphoses personnelles dessin\'{e}es avec ces commandes. De plus, cette partie permet l'affichage de texte anamorphos\'{e} et de dessins au format \textsf{.pst} c'est-\`{a}-dire compos\'{e} de commandes \textsf{PStricks}. \end{itemize} Ce package permet de calculer et dessiner les images anamorphiques planes obtenues par les anamorphoses suivantes : \begin{enumerate} \item cylindrique ; \item conique ; - \item sphérique ; + \item sph\'{e}rique ; \item perspective ; - \item perspective inversée. + \item perspective invers\'{e}e. \end{enumerate} \end{abstract} + + \section{\textbackslash{}psanamorphosis} -\verb+\psanamorphosis[options](x,y){fichier.eps}+ dessine l'image et l'image anamorphique au point de coordonnées $(x,y)$. Si les coordonnées ne sont pas précisées l'origine est $(0,0)$. +\verb+\psanamorphosis[options](x,y){fichier.eps}+ dessine l'image et l'image anamorphique au point de coordonn\'{e}es $(x,y)$. Si les coordonn\'{e}es ne sont pas pr\'{e}cis\'{e}es l'origine est $(0,0)$. -Les \textbf{options}, avec leurs valeurs par défaut : +Les \textbf{options}, avec leurs valeurs par d\'{e}faut : \begin{itemize} \item Le type d'anamorphose \textsf{[type=cylindrical] }, voici les autres : % @@ -40,38 +155,47 @@ Les \textbf{options}, avec leurs valeurs par d \item \textsf{inverseperspective} \end{itemize} % - \item le rayon du cylindre, de la sphère et de la base du cône : \textsf{Rmirror=3} ; - \item la hauteur du cône, la cote du sommet : \textsf{Zs=5} - \item l'abscisse de l'observateur (du point de vue, d'où la lettre \textsf{v}) : \textsf{Xv=0} ; - \item l'ordonnée de l'observateur : \textsf{Yv=-10} ; + \item le rayon du cylindre, de la sph\`{e}re et de la base du c\^{o}ne : \textsf{Rmirror=3} ; + \item la hauteur du c\^{o}ne, la cote du sommet : \textsf{Zs=5} + \item l'abscisse de l'observateur (du point de vue, d'o\`{u} la lettre \textsf{v}) : \textsf{Xv=0} ; + \item l'ordonn\'{e}e de l'observateur : \textsf{Yv=-10} ; \item la cote de l'observateur : \textsf{Zv=10} ; - \item L'ordonnée du point de fuite principal $F$ : \textsf{F=10} ; - \item la distance de $F$ à $F'$ : \textsf{D=4} ; - \item l'unité du quadrillage ou plutôt le demi-côté du carré : \textsf{ua=2}. - \item un booléen \textsf{[drawanamorphosis=true]} qui dessine l'image anamorphique et qui positionné à \textsf{[false]} permet de faire des essais de dimensions et de cadrage par rapport au \textit{cercle} de base du miroir ; - \item un facteur d'échelle \textsf{[scale=1 1]} suivant $x$ et $y$ pour adapter les dimensions de l'image au miroir~; + \item l'ordonn\'{e}e du point de fuite principal $F$ : \textsf{F=10} ; + \item la distance de $F$ \`{a} $F'$ : \textsf{D=4} ; + \item l'unit\'{e} du quadrillage ou plut\^{o}t le demi-c\^{o}t\'{e} du carr\'{e} : \textsf{ua=2}. + \item Un bool\'{e}en \textsf{[drawanamorphosis=true]} qui dessine l'image anamorphique et qui positionn\'{e} \`{a} \textsf{[false]} permet de faire des essais de dimensions et de cadrage par rapport au \textit{cercle} de base du miroir ; + \item un facteur d'\'{e}chelle \textsf{[scale=1 1]} suivant $x$ et $y$ pour adapter les dimensions de l'image au miroir. \end{itemize} + \section{pst-anamorphosis-add} + \subsection{Les macros \textbackslash{}pscircleA, \textbackslash{}pscurveA, \textbackslash{}psccurveA, \textbackslash{}psbezierA, \mbox{\textbackslash{}pnodeA} et \textbackslash{}movetoA} -Ces commandes sont calquées sur celles de PStricks, elles ont donc les mêmes options, elles s'adaptent automatiquement au type d'anamorphose choisi. + +Ces commandes sont calqu\'{e}es sur celles de PStricks, elles ont donc les m\^{e}mes options, elles s'adaptent automatiquement au type d'anamorphose choisi. + \subsection{Un texte} -\verb+\pstextA[options](x,y){texte}+ permet de placer le texte centré au point de coordonnées~$(x,y)$. +\verb+\pstextA[options](x,y){texte}+ permet de placer le texte centr\'{e} au point de coordonn\'{e}es~$(x,y)$. Les options de texte : \begin{itemize} \item le type de fonte \textsf{[PSfont=Times-Roman]} ; \item la taille en pts \textsf{[fontsize=40]} ; - \item un facteur d'échelle \textsf{[scale=1 1]}, comme pour les images. + \item un facteur d'\'{e}chelle \textsf{[scale=1 1]}, comme pour les images. \end{itemize} -\subsection{Un fichier .pst} -Une commande spécifique permet le calcul et l'affichage des fichiers au format \textbf{.pst} : \mbox{\textbf{\textbackslash{}AFP\{fichier.pst\}}.} Cette image peut être mise à une échelle différente ou déplacée si le type d'anamorphose choisie le nécessite, comme dans l'exemple suivant : -\begin{verbatim} + +\subsection{Un fichier \textsf{.pst}} + +Une commande sp\'{e}cifique permet le calcul et l'affichage des fichiers au format \textbf{.pst} : \mbox{\textbf{\textbackslash{}AFP\{fichier.pst\}}.} Cette image peut \^{e}tre mise \`{a} une \'{e}chelle diff\'{e}rente ou d\'{e}plac\'{e}e si le type d'anamorphose choisie le n\'{e}cessite, comme dans l'exemple suivant : +\begin{lstlisting} \psset{Rmirror=3,scale=-0.5 -0.5,translate=0 1.5,type=conical} \AFP{tiger.pst} -\end{verbatim} +\end{lstlisting} + \section{Exemples} + \subsection{Anamorphose cylindrique} -L'anamorphose cylindrique est celle qui est tracée par défaut si aucun type n'est spécifié. Comme options, elle ne nécessite que le rayon du cylindre, l'abscisse et l'ordonnée du point de vue, comme nous l'avons vu dans la partie théorique la cote du point de vue n'intervient pas. Comme tous les autres types d'anamorphoses, le dessin pourra être mis à l'échelle, si nécessaire, avec l'option \textsf{[scale=sx sy]}. + +L'anamorphose cylindrique est celle qui est trac\'{e}e par d\'{e}faut si aucun type n'est sp\'{e}cifi\'{e}. Comme options, elle ne n\'{e}cessite que le rayon du cylindre, l'abscisse et l'ordonn\'{e}e du point de vue, comme nous l'avons vu dans la partie th\'{e}orique la cote du point de vue n'intervient pas. Comme tous les autres types d'anamorphoses, le dessin pourra \^{e}tre mis \`{a} l'\'{e}chelle, si n\'{e}cessaire, avec l'option \textsf{[scale=sx sy]}. \begin{center} \begin{pspicture}[showgrid](-8,-4)(8,10) \pscircle[doubleline=true]{3} @@ -92,7 +216,7 @@ L'anamorphose cylindrique est celle qui est trac \pstextA[fontsize=25,scale=1.5 -1,fillcolor=black](0,-3){Mickey} \end{pspicture} \end{center} -\begin{verbatim} +\begin{lstlisting} \begin{pspicture}[showgrid](-8,-4)(8,10) \pscircle[doubleline=true]{3} \psset{Yv=100,linestyle=dotted} @@ -111,9 +235,11 @@ L'anamorphose cylindrique est celle qui est trac } \pstextA[fontsize=25,scale=1.5 -1,fillcolor=black](0,-3){Mickey} \end{pspicture} -\end{verbatim} +\end{lstlisting} + \subsection{Anamorphose conique} -Comme options, l'anamorphose conique ne nécessite que le rayon de la base du cône \textsf{Rmirror=3}, la hauteur du cône et la cote \textsf{Zv=10} du point de vue. + +Comme options, l'anamorphose conique ne n\'{e}cessite que le rayon de la base du c\^{o}ne \textsf{Rmirror=3}, la hauteur du c\^{o}ne et la cote \textsf{Zv=10} du point de vue. \begin{center} \begin{pspicture}[showgrid](-6,-6)(6,6) \pscircle[doubleline=true]{3} @@ -149,7 +275,7 @@ Comme options, l'anamorphose conique ne n \pstextA[fontsize=10,fillcolor=green,scale=1.5 -1](0,0.75){Le perroquet} \end{pspicture} \end{center} -\begin{verbatim} +\begin{lstlisting} \begin{pspicture}[showgrid](-6,-6)(6,6) \pscircle[doubleline=true]{3} \psset{type=conical} @@ -183,9 +309,11 @@ Comme options, l'anamorphose conique ne n \pstextA[fontsize=10,fillcolor=green,scale=1.5 1](0,-0.75){Le perroquet} \pstextA[fontsize=10,fillcolor=green,scale=1.5 -1](0,0.75){Le perroquet} \end{pspicture} -\end{verbatim} -\subsection{Anamorphose hémisphérique} -L'anamorphose sphérique possède comme options le rayon du la sphère et les 3 coordonnées du point de vue. C'est la plus délicate à mettre au point pour que tous les rayons réfléchis par le miroir parviennent à l'\oe{}il. +\end{lstlisting} + +\subsection{Anamorphose h\'{e}misph\'{e}rique} + +L'anamorphose sph\'{e}rique poss\`{e}de comme options le rayon du la sph\`{e}re et les 3 coordonn\'{e}es du point de vue. C'est la plus d\'{e}licate \`{a} mettre au point pour que tous les rayons r\'{e}fl\'{e}chis par le miroir parviennent \`{a} l'\oe{}il. \begin{center} \psscalebox{0.75}{ \begin{pspicture}[showgrid](-7,-19)(7,5) @@ -211,7 +339,7 @@ L'anamorphose sph \end{pspicture} } \end{center} -\begin{verbatim} +\begin{lstlisting} \begin{pspicture}[showgrid](-7,-19)(7,5) \pscircle[doubleline=true]{5} \psset{type=spherical,Rmirror=5} @@ -233,14 +361,16 @@ L'anamorphose sph \psbezier[linecolor=red,showpoints=true](-2,-4)(-1,-3.2)(1,-4)(2,-3) \psbezierA[showpoints=true,linecolor=red](-2,-4)(-1,-3.2)(1,-4)(2,-3) \end{pspicture} -\end{verbatim} +\end{lstlisting} + \subsection{Anamorphose oblique ou perspective} -Les options sont particulières : + +Les options sont particuli\`{e}res : \begin{itemize} - \item L'ordonnée du point de fuite principal $F$ : \textsf{F=10} ; - \item la distance de $F$ à $F'$ : \textsf{D=4} - \item l'unité du quadrillage ou plutôt le demi-côté du carré : \textsf{ua=2}. - \item Un booléen \textsf{perpsective=true} qui représente l'objet traité en perspective et qui positionné à \textsf{false} donne la représentation inversée c'est-à-dire l'anamorphose oblique. + \item l'ordonn\'{e}e du point de fuite principal $F$ : \textsf{F=10} ; + \item la distance de $F$ \`{a} $F'$ : \textsf{D=4} + \item l'unit\'{e} du quadrillage ou plut\^{o}t le demi-c\^{o}t\'{e} du carr\'{e} : \textsf{ua=2}. + \item Un bool\'{e}en \textsf{perpsective=true} qui repr\'{e}sente l'objet trait\'{e} en perspective et qui positionn\'{e} \`{a} \textsf{false} donne la repr\'{e}sentation invers\'{e}e c'est-\`{a}-dire l'anamorphose oblique. \end{itemize} \begin{center} \begin{pspicture}(-4,-3)(4,12) @@ -268,7 +398,7 @@ Les options sont particuli \pstextA[fontsize=35,fillcolor=green](-2.5,-3){T} \end{pspicture} \end{center} -\begin{verbatim} +\begin{lstlisting} \begin{pspicture}(-4,-3)(4,12) \psgrid[subgriddiv=0,gridcolor=lightgray,griddots=10,gridlabels=4pt](-3,-3)(3,3) \psset{ua=3,F=12,D=2} @@ -294,14 +424,14 @@ Les options sont particuli \pstextA[fontsize=35,fillcolor=green](-2.5,-3){T} \end{pspicture} \end{center} -\end{verbatim} - -\subsection{Perspective inversée} -Ceci est extrait de la page 59 du Baltrušaïtis : +\end{lstlisting} -<< L'arrangement peut fonctionner dans les deux sens. Si le carré en perspective se présente comme un trapèze, le trapèze y apparaît comme un carré. -Un renversement du point de vue ramené au dessus du point principal (à une hauteur égale à l'éloignement de la distance) et installé en quelque sorte dans le tableau, aboutit à un effet contraire. Les mêmes rétrécissements corrigent les formes et les rapprochent au lieu de les éloigner et de les altérer, comme dans un film à l'envers. La perspective est à rebours. ->> +\subsection{Perspective invers\'{e}e} +Ceci est extrait de la page 59 du Baltru\v{s}a\"{\i}tis : +\begin{quote}\itshape +<<~L'arrangement peut fonctionner dans les deux sens. Si le carr\'{e} en perspective se pr\'{e}sente comme un trap\`{e}ze, le trap\`{e}ze y appara\^{\i}t comme un carr\'{e}. +Un renversement du point de vue ramen\'{e} au dessus du point principal (\`{a} une hauteur \'{e}gale \`{a} l'\'{e}loignement de la distance) et install\'{e} en quelque sorte dans le tableau, aboutit \`{a} un effet contraire. Les m\^{e}mes r\'{e}tr\'{e}cissements corrigent les formes et les rapprochent au lieu de les \'{e}loigner et de les alt\'{e}rer, comme dans un film \`{a} l'envers. La perspective est \`{a} rebours.~>> +\end{quote} \begin{center} \psscalebox{2}{ \begin{pspicture}(-3,-8)(3,3) @@ -330,7 +460,7 @@ Un renversement du point de vue ramen \end{pspicture} } \end{center} -\begin{verbatim} +\begin{lstlisting} \begin{pspicture}(-3,-4)(3,3) \psgrid[subgriddiv=0,gridcolor=lightgray,griddots=10,gridlabels=6pt](-3,-3)(3,-6) \psset{ua=3,F=14,D=3,type=inverseperspective,linewidth=0.5\pslinewidth} @@ -355,8 +485,10 @@ Un renversement du point de vue ramen \pstextA(-2.48,-2){E} \pstextA(-2.48,-3){!} \end{pspicture} -\end{verbatim} +\end{lstlisting} + \section{Les fichiers pst} + \begin{center} \begin{pspicture}[showgrid](-5,-6)(5,3) \rput(0,-1.3333){% @@ -383,7 +515,7 @@ Un renversement du point de vue ramen }} \end{pspicture} \end{center} -\begin{verbatim} +\begin{lstlisting} \begin{pspicture}(-6,-8)(6,4) \psset{Xv=0,Yv=-100} \pscircle[doubleline=true,linecolor=black]{3} @@ -403,14 +535,14 @@ Un renversement du point de vue ramen \psline(A)(B) } \end{pspicture} -\end{verbatim} -Les fichiers \textsf{pst} sont des fichiers de commandes PStricks obtenues par conversion d'un fichier \textsf{.eps} au moyen d'un script écrit par Jean-Michel Sarlat. +\end{lstlisting} +Les fichiers \textsf{.pst} sont des fichiers de commandes PSTricks obtenues par conversion d'un fichier \textsf{.eps} au moyen d'un script \'{e}crit par Jean-Michel \textsc{Sarlat}. -L'anamorphose d'une telle image est obtenue à l'aide d'une seule commande \verb+\AFP{luckyluke.pst}+. De tels fichiers pourront donc être obtenues au moyen du script ou bien directement sur le serveur de \textsf{syracuse} (adresse à préciser). +L'anamorphose d'une telle image est obtenue \`{a} l'aide d'une seule commande \verb+\AFP{luckyluke.pst}+ (AFP $=$ \textbf{A}namorphose \`{a} partir d'un \textbf{F}ichier \textbf{P}STricks). De tels fichiers pourront donc \^{e}tre obtenues au moyen du script ou bien directement sur le serveur de \textsf{syracuse} (adresse \`{a} pr\'{e}ciser). -En fonction de la complexité du fichier (du nombre de lignes de commandes qu'il contient) il sera nécessaire d'allouer un supplément de mémoire à \TeX. Par exemple, sous Windows, à partir de MikTeX 2.8, Alexander Grahn donne la procédure à suivre dans la documentation de son package : `\textsf{The animate}' -\begin{verbatim} -1. Open a DOS command prompt window (execute ‘cmd.exe’ via ‘Start’! ‘Run’). +En fonction de la complexit\'{e} du fichier (du nombre de lignes de commandes qu'il contient) il sera n\'{e}cessaire d'allouer un suppl\'{e}ment de m\'{e}moire \`{a} \TeX. Par exemple, sous Windows, \`{a} partir de MiK\TeX~2.8, Alexander \textsc{Grahn} donne la proc\'{e}dure \`{a} suivre dans la documentation de son package : `\textsf{animate}' +\begin{lstlisting} +1. Open a DOS command prompt window (execute `cmd.exe' via `Start'! `Run'). 2. At the DOS prompt, enter initexmf --edit-config-file=latex 3. Type @@ -418,7 +550,7 @@ main_memory=10000000 into the editor window that opens, save the file and quit the editor. 4. To rebuild the format, enter initexmf --dump=latex -5. Repeat steps 2–4 with config +5. Repeat steps 2-4 with config initexmf --edit-config-file=pdflatex main_memory=10000000 @@ -427,25 +559,27 @@ initexmf --dump=pdflatex initexmf --edit-config-file=xelatex main_memory=10000000 initexmf --dump=xelatex -\end{verbatim} -\section{Normalisation d'une image au format eps} -Il est souvent nécessaire de ``préparer'' l'image à anamorphoser. Voici le détail de la procédure suivie à partir d'une image de Donald Duck capturée sur un site de coloriage. +\end{lstlisting} + +\section{Normalisation d'une image au format \textsf{.eps}} + +Il est souvent n\'{e}cessaire de ``pr\'{e}parer'' l'image \`{a} anamorphoser. Voici le d\'{e}tail de la proc\'{e}dure suivie \`{a} partir d'une image de Donald Duck captur\'{e}e sur un site de coloriage. \url{http://www.waouo.com/wp-content/uploads/2011/06/coloriagedonaldduck.jpg} \begin{enumerate} - \item Transformer l'image au format \textsf{bmp} avec \textsf{The Gimp}(par exemple). - \item Vectoriser l'image avec \textsf{Potrace}, en ligne de commande : \textsf{potrace donald.bmp donald2.eps} - \item Avec \textsf{pstoedit} convertir au format vectoriel ps simplifié avec courbes. On peut opérer en ligne de commande : \textsf{pstoedit -f ps donald2.eps donald1.eps} ou bien avec \textsf{GSview} dans le menu Edition, cliquer sur \textsf{Conversion vers un format vectoriel} et choisir \textsf{ps : Simplified Postscript with curves}, on enregistre sous le nom \textsf{donald1.eps}. - \item Avec votre éditeur de texte rechercher à la fin du fichier la ligne qui donne les dimensions de la boîte : \verb+%%BoundingBox: 4 7 453 640+ . - \item La hauteur de l'image eps est 640-7 =633\,pts, c'est la plus grande dimension. Supposons que votre image finale doive posséder une longueur de 4\,cm dans sa plus grande dimension. Sachant que 1\,cm vaut 28.45274 pts, il faut donc lui appliquer un facteur d'échelle égal à $\dfrac{4\times28.45274}{633}$. -\item Ensuite il faut déplacer cette image pour que le centre de celle-ci soit à l'origine $(0,0)$, il faut donc appliquer la translation $-\dfrac{453+4}{2},-\dfrac{640+7}{2}$, ce qui convertit en postscript se traduira par l'ajout de ces deux lignes dans le fichier \textsf{donald1.eps}, au début du fichier juste après la ligne : \verb+%%Page: 1 1+ -\begin{verbatim} + \item Transformer l'image au format \textsf{bmp} avec \textsf{The Gimp} (par exemple). + \item Vectoriser l'image avec \textsf{Potrace}, en ligne de commande : \textsf{potrace donald.bmp -o donald2.eps} + \item Avec \textsf{pstoedit} convertir au format vectoriel ps simplifi\'{e} avec courbes. On peut op\'{e}rer en ligne de commande : \textsf{pstoedit -f ps donald2.eps donald1.eps} ou bien avec \textsf{GSview} dans le menu Edition, cliquer sur \textsf{Conversion vers un format vectoriel} et choisir \textsf{ps : Simplified Postscript with curves}, on enregistre sous le nom \textsf{donald1.eps}. + \item Avec votre \'{e}diteur de texte rechercher \`{a} la fin du fichier la ligne qui donne les dimensions de la bo\^{\i}te : \verb+%%BoundingBox: 4 7 453 640+ . + \item La hauteur de l'image eps est $640-7 =633$\,pts, c'est la plus grande dimension. Supposons que votre image finale doive poss\'{e}der une longueur de 4\,cm dans sa plus grande dimension. Sachant que 1\,cm vaut 28.45274\,pts, il faut donc lui appliquer un facteur d'\'{e}chelle \'{e}gal \`{a} $\dfrac{4\times28.45274}{633}$. +\item Ensuite il faut d\'{e}placer cette image pour que le centre de celle-ci soit \`{a} l'origine $(0,0)$, il faut donc appliquer la translation $-\dfrac{453+4}{2},\,-\dfrac{640+7}{2}$, ce qui convertit en postscript se traduira par l'ajout de ces deux lignes dans le fichier \textsf{donald1.eps}, au d\'{e}but du fichier juste apr\`{e}s la ligne : \verb+%%Page: 1 1+ +\begin{lstlisting} 4 28.45274 mul 633 div dup scale 4 453 add 2 div neg 640 7 add 2 div neg translate -\end{verbatim} +\end{lstlisting} On enregistre ce fichier. -\item \textsf{pstoedit} intervient à nouveau, avec les mêmes options, et on enregistre le fichier final sous le nom : \textsf{donald.eps}. +\item \textsf{pstoedit} intervient \`{a} nouveau, avec les m\^{e}mes options, et on enregistre le fichier final sous le nom : \textsf{donald.eps}. \end{enumerate} \begin{center} \begin{pspicture}[showgrid](-8,-4)(8,10) @@ -467,7 +601,7 @@ Il est souvent n \pstextA[fontsize=25,scale=1.5 -1,fillcolor=black](0,-2.5){Donald} \end{pspicture} \end{center} -\begin{verbatim} +\begin{lstlisting} \begin{pspicture}[showgrid](-8,-4)(8,10) \pscircle[doubleline=true]{3} \psset{Yv=100,linestyle=dotted} @@ -486,5 +620,5 @@ Il est souvent n } \pstextA[fontsize=25,scale=1.5 -1,fillcolor=black](0,-2.5){Donald} \end{pspicture} -\end{verbatim} +\end{lstlisting} \end{document} \ No newline at end of file