mardi 27 mai 2014

Cardioïde comme enveloppe des cercles + damier

Construire une cardioïde comme enveloppe des cercles est une chose facile à réaliser avec PSTriks. Par exemple, on se donne R le rayon du cercle des centres de la famille des cercles ainsi que le nombre de cercles. Les explications pour ce tracé et les suivants sont dans le document. Ceci est un bref résumé illustré avec les images du document situé dans ce répertoire :



Construire un damier sur cette figure est un peu plus compliqué. La commande \psDamierCardioid[options] est dédiée à ce tracé et comprend différentes options.



On peut dessiner uniquement les intersections des cercles en utilisant la commande \psCardioid, du document : fichiers (pst-intersection-v2.pdf et pst-intersection-v2.tex)  :


C'est un complément au document déjà publié dans ce blog :

http://pstricks.blogspot.fr/2011/11/coloriser-lintersection-de-deux.html



2 autres images de damiers :



mardi 13 mai 2014

Animation de la roue de Maxwell

La première animation a été réalisée avec le package animate d'Alexander Grahn. Pour obtenir une animation à peu près fluide il faut un grand nombre d'images, dans cet exemple 250 ! Le fichier pdf obtenu est assez lourd : 17 Mo.
http://manuel.luque.perso.neuf.fr/Roue_de_Maxwell/roueMaxwell-animate.pdf 
http://manuel.luque.perso.neuf.fr/Roue_de_Maxwell/roueMaxwell-animate.tex 

La deuxième est un Gif animé obtenu avec 500 images calculées avec PSTricks. On ne peut éviter l'effet stroboscopique : le choix d'une roue avec de rayons n'était pas une bonne idée, même si les points de couleurs sur le pourtour de la roue peuvent limiter, dans le cas d'une vitesse faible, cet effet stroboscopique qui donne l'impression que la roue tourne à l'envers. C'est donc un Gif au ralenti que j'ai choisi d'afficher. Il faut attendre le temps nécessaire au chargement des 500 images pour visualiser l'animation correctement.

mercredi 7 mai 2014

Calculer et placer les zéros d'une fonction sur sa courbe représentative par Thomas Söll.

Une macro" \psZero" permettant de calculer et de placer les zéros d'une fonction sur sa courbe représentative. Elle utilise quelques options de pst-tools.

 
Fichiers (Nullstellen-Berechnung.pdf Nullstellen-Berechnung.tex) dans l'archive :

 Cette macro de Thomas complète cette ébauche que j'avais écrite ici :


mardi 6 mai 2014

Intersection de courbes avec pst-eucl

Je me permets de donner la réponse de Thomas Söll à une question posée par Scott Randy(qui a par ailleurs donné lui-même une solution à sa question) dans le forum dédié à PSTricks :

http://www.tug.org/pipermail/pstricks/2014/010333.html

Cette solution utilise une possibilité  avec la commande "\pstInterFF" de pst-eucl, le package de Dominique RODRIGUEZ dédié aux constructions géométriques dans le plan, qui est de pouvoir chercher les intersections de deux courbes quelconques --pourvu, bien sûr, qu'elles soient définies par une équation. L'algorithme de Newton est utilisé pour la recherche et celle-ci peut être limitée autour d'un extremum local proche du zéro cherché.




Voici le code envoyé par Thomas Söll :

http://www.tug.org/pipermail/pstricks/2014/010334.html

Que je recopie ci-dessous :

\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-plot,pst-eucl}

\begin{document}

\begin{pspicture}[showgrid=false,saveNodeCoors](-1,-1)(10,6)
\psset{xunit=2 ,yunit=0.6}
\psset{algebraic,plotstyle=curve}
%
\def\xE{4}
%
\definecolor{SuperLightBlue}{cmyk}{0.2,0,0,0}
\pstInterFF[dotscale=0.6]{0.25*x^2+1}{0.5*(x-4)^2}{3}{S}
%
\pscustom[fillstyle=solid,fillcolor=SuperLightBlue,linestyle=none]{%
      \psplot{0}{N-S.x}{0.25*x^2+1}
      \psline(*{N-S.x} {0.25*x^2+1})(0,0|*{N-S.x} {0.25*x^2+1})
      \closepath
}
\pscustom[fillstyle=solid,fillcolor=green!10,linestyle=none]{%
      \psplot{0}{N-S.x}{0.5*(x-4)^2}
      \psline(*{N-S.x} {0.5*(x-4)^2})(0,0|*{N-S.x} {0.5*(x-4)^2})
      \closepath
}
\pscustom[fillstyle=solid,fillcolor=yellow!40,linestyle=none]{%
      \psplot{N-S.x}{4}{0.25*x^2+1}
      \lineto(*{\xE} {0.5*(x-4)^2})
      \psplot{\xE}{N-S.x}{0.5*(x-4)^2}
      \closepath
}
\pscustom[fillstyle=solid,fillcolor=orange!40,linestyle=none]{%
      \psplot{0}{N-S.x}{0.25*x^2+1}
      \psplot{N-S.x}{\xE}{0.5*(x-4)^2}
      \lineto(\xE,0)
      \lineto(0,0)
      \closepath
}
\pscustom[fillstyle=solid,fillcolor=magenta!10,linestyle=none]{%
      \psplot{0}{N-S.x}{0.5*(x-4)^2}
      \psplot{N-S.x}{\xE}{0.25*x^2+1}
      \lineto(\xE,0|*{0} {0.5*(x-4)^2})
      \closepath
}
%
\psaxes[labels=none, ticks=none, linewidth=0.25pt](0,0)(4.5,8.25)%
[\footnotesize $q$ \textsf{(quantity)},90]%
[\footnotesize $p$ \textsf{(price/unit)},90]
%
\psplot[linecolor=blue]{0}{4}{0.5*(x-4)^2}
\psplot[linecolor=blue]{0}{4}{0.25*x^2+1}
%
\psline[linestyle=dotted](2,0)(2,2)
\psline[linestyle=dotted](0,2)(2,2)
%
\rput(1.3,6.25){\rnode{A}{\footnotesize \textsf{Producer Surplus}}}
\pnode(0.5,1.35){B}
\nccurve[angleA=180, angleB=135]{->}{A}{B}
%
\rput[r](-0.05,1){\footnotesize $p_0$}
\rput[r](-0.05,2){\footnotesize $p*$}
\rput[r](-0.05,8){\footnotesize $p_1$}
\rput[t](2,-0.1){\footnotesize $q*$}
\rput[t](4,-0.1){\footnotesize $q_1$}
\rput(3.3,3){\footnotesize \textsf{Supply}}
\rput(1.5,4.25){\footnotesize\textsf{Demand}}
\end{pspicture}

\end{document}