Historique des modifications [retour]
cliquez ici pour masquer/afficher la révision 2
mot-clé, titre

05 Jul '17, 12:54

Pathe's gravatar image

Pathe
7.6k49209252

Représenter un vissage torique à l'aide de pgfplots

J'essaie de reproduire la figure ci-dessous à l'aide de `pgfplots` : ![Twisted plot][1] J'ai vu une explication sur *[mathematica stackexchange](https://mathematica.stackexchange.com/questions/37698/how-to-plot-a-certain-surface-what-is-its-parametric-equation)*. Elle va me servir d'exemple : je vais procéder de même. Ainsi vais-je tout d'abord dessiner une coupe de la figure, puis visser celle-ci en suivant le périmètre d'un cercle. La vue en coupe est obtenue grâce au code suivant : \documentclass[border=10pt]{standalone} \usepackage{pgfplots} \usepgfplotslibrary{polar} \begin{document} \begin{tikzpicture} \begin{polaraxis} \addplot[mark=none, domain=0:360, samples=100] {sin(3*x) + 1.25}; \end{polaraxis} \end{tikzpicture} \end{document} ![2d plot][2] Puis je donne de celle-ci une vue en trois dimensions. Je colore ma figure pour plus de lisibilité. Par souci de simplification, je place la figure au niveau 0. Il est toujours possible de modifier cela ou de changer le point de vue. \documentclass[border=10pt]{standalone} \usepackage{pgfplots} \begin{document} \begin{tikzpicture} \begin{axis} \addplot3 [domain=0:360, samples=60, fill=blue!30, opacity=0.8] ( {cos(x)*(sin(3*x) + 1.25)}, {sin(x)*(sin(3*x) + 1.25)}, 0 ); \end{axis} \end{tikzpicture} \end{document} ![3d plot][3] Il ne nous reste plus qu'à faire tourner la figure par rapport à son centre, pendant que celui-ci décrit un cercle selon un axe perpendiculaire au plan dans lequel s'inscrit la figure. On trouvera sur *[TeX stackexchange](https://tex.stackexchange.com/questions/142152/how-to-produce-a-3d-surface-plot-by-rotating-the-2d-plot-of-a-function)* un premier exemple de rotation sur l'axe Z, obtenu grâce à la fonction `({sin(x)*y},{cos(x)*y},{ <function of y> })`. Outre le fil consacré à *mathematica* cité plus haut, on peut s'inspirer de la [documentation](http://reference.wolfram.com/language/ref/RotationTransform.html) dudit [logiciel](https://fr.wikipedia.org/wiki/Mathematica). Car la question demeure : comment réaliser cette figure avec `pgfplots` ? PS : cette question est la traduction de [celle-ci](http://texwelt.de/wissen/fragen/7436/drehtransformation-mit-pgfplots), posée sur le forum germanophone [texwelt.de](http://texwelt.de/wissen). [1]: http://texnique.fr:80/osqa/upfiles/twisted.png [2]: http://texnique.fr:80/osqa/upfiles/2d-plot.png [3]: http://texnique.fr:80/osqa/upfiles/3D-Plot.png
cliquez ici pour masquer/afficher la révision 1

04 Jul '17, 18:27

stefan's gravatar image

stefan
10618

Représenter un vissage à l'aide de pgfplots

J'essaie de reproduire la figure ci-dessous à l'aide de `pgfplots` : ![Twisted plot][1] J'ai vu une explication sur *[mathematica stackexchange](https://mathematica.stackexchange.com/questions/37698/how-to-plot-a-certain-surface-what-is-its-parametric-equation)*. Elle va me servir d'exemple : je vais procéder de même. Ainsi vais-je tout d'abord dessiner une coupe de la figure, puis visser celle-ci en suivant le périmètre d'un cercle. La vue en coupe est obtenue grâce au code suivant : \documentclass[border=10pt]{standalone} \usepackage{pgfplots} \usepgfplotslibrary{polar} \begin{document} \begin{tikzpicture} \begin{polaraxis} \addplot[mark=none, domain=0:360, samples=100] {sin(3*x) + 1.25}; \end{polaraxis} \end{tikzpicture} \end{document} ![2d plot][2] Puis je donne de celle-ci une vue en trois dimensions. Je colore ma figure pour plus de lisibilité. Par souci de simplification, je place la figure au niveau 0. Il est toujours possible de modifier cela ou de changer le point de vue. \documentclass[border=10pt]{standalone} \usepackage{pgfplots} \begin{document} \begin{tikzpicture} \begin{axis} \addplot3 [domain=0:360, samples=60, fill=blue!30, opacity=0.8] ( {cos(x)*(sin(3*x) + 1.25)}, {sin(x)*(sin(3*x) + 1.25)}, 0 ); \end{axis} \end{tikzpicture} \end{document} ![3d plot][3] Il ne nous reste plus qu'à faire tourner la figure par rapport à son centre, pendant que celui-ci décrit un cercle selon un axe perpendiculaire au plan dans lequel s'inscrit la figure. On trouvera sur *[TeX stackexchange](https://tex.stackexchange.com/questions/142152/how-to-produce-a-3d-surface-plot-by-rotating-the-2d-plot-of-a-function)* un premier exemple de rotation sur l'axe Z, obtenu grâce à la fonction `({sin(x)*y},{cos(x)*y},{ <function of y> })`. Outre le fil consacré à *mathematica* cité plus haut, on peut s'inspirer de la [documentation](http://reference.wolfram.com/language/ref/RotationTransform.html) dudit [logiciel](https://fr.wikipedia.org/wiki/Mathematica). Car la question demeure : comment réaliser cette figure avec `pgfplots` ? PS : cette question est la traduction de [celle-ci](http://texwelt.de/wissen/fragen/7436/drehtransformation-mit-pgfplots), posée sur le forum germanophone [texwelt.de](http://texwelt.de/wissen). [1]: http://texnique.fr:80/osqa/upfiles/twisted.png [2]: http://texnique.fr:80/osqa/upfiles/2d-plot.png [3]: http://texnique.fr:80/osqa/upfiles/3D-Plot.png