Je cherche à tracer une spirale de Fermat avec J'ai donc calculé les coordonnées de tous les points (il y en a 113 au total), grâce aux formules :
J'ai fait ces calculs sur un tableur (libreoffice), puis j'ai transféré les coordonnées dans un fichier texte avec gedit. Ensuite, j'ai traçé la figure avec Voici un ECM : \documentclass[10pt]{article} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{lmodern} \usepackage[french]{babel}[2013/05/16] \usepackage{tikz} \usetikzlibrary{plotmarks} \usepackage{xcolor} \usepackage{graphicx} \usepackage{color} \usepackage{siunitx} \usepackage[a4paper,margin=6mm]{geometry} \begin{document} \begin{center} \begin{tikzpicture} % traçé de l'axe des x \foreach \y in {-10,-9,...,10} \draw(-1,\y)node[left]{\y}; % traçé de l'axe des y \foreach \x in {-10,-9,...,10} \draw(\x,0)node[below]{\x}; \draw[dotted] plot[mark=ball] file {listepointsspirale}; \end{tikzpicture} \end{center} \end{document} Mes questions sont les suivantes :
Posée 10 Mar '17, 14:34 ettoremajorana stefan ♦♦
Affichage de 5 parmi 6
Afficher 1 commentaire(s) en plus
|
À compléter Une solution basée sur pgfplots. L'idée et d'ajouter (dans le fichier des données) une troisième colonne Exemple fichier des données Ouvrir dans l'éditeur Overleaf
#x y (xy) 0.000000000000000000 0.000000000000000000 (0.00,0.00) -0.518802039868240988 0.475261237035540361 (-0.52,0.48) 0.086998192061317269 -0.991205788208514315 (0.09,-0.99) 0.741456721985263832 0.967123740491808607 (0.74,0.97) -1.385650965711109962 -0.245125684545435452 (-1.39,-0.25) 1.327463029854904571 -0.844384926658710952 (1.33,-0.84) -0.447448095958092837 1.664320582527139602 (-0.45,1.66) -0.857933200213072615 -1.652014595568742482 (-0.86,-1.65) ... Les mots clés sont Exemple fichier Ouvrir dans l'éditeur Overleaf
\begin{filecontents}{SpFermat.dat} #x y (xy) 0.000000000000000000 0.000000000000000000 (0.00,0.00) -0.518802039868240988 0.475261237035540361 (-0.52,0.48) 0.086998192061317269 -0.991205788208514315 (0.09,-0.99) 0.741456721985263832 0.967123740491808607 (0.74,0.97) -1.385650965711109962 -0.245125684545435452 (-1.39,-0.25) 1.327463029854904571 -0.844384926658710952 (1.33,-0.84) -0.447448095958092837 1.664320582527139602 (-0.45,1.66) -0.857933200213072615 -1.652014595568742482 (-0.86,-1.65) \end{filecontents} \documentclass{article} \usepackage[a4paper,margin=1cm]{geometry} \usepackage{pgfplots} \pagestyle{empty} \begin{document} \begin{tikzpicture}[>=latex] \begin{axis}[nodes near coords={\tiny \pgfplotspointmeta}, width=20cm, height=20cm, axis lines=center, xlabel style={below right}, ylabel style={above left}, xlabel={$x$}, ylabel={$y$}, xtick={-10,-9,...,10}, ytick={-10,-9,...,10}, xmin=-10.5, xmax=10.5, ymin=-10.5, ymax=10.5] \addplot[mark=ball, only marks, point meta=explicit symbolic] file {SpFermat.dat}; \end{axis} \end{tikzpicture} \end{document} OK. Bon travail. Maintenant, j'aimerais savoir si vous avez une technique pour rentrer les coordonnées rapidement dans la troisième colonne du fichier texte (intitulé listepointsspirale), car j'ai maintenant 440 points ! Et je me vois mal recopier les valeurs à la main !
(16 Mar '17, 01:19)
ettoremajorana
Question 2 : comment faites-vous pour tracer la ligne qui relie les points ? Est-ce que vous triez les valeurs avant de les recopier dans le fichier texte ? Parce que si je ne trie pas les valeurs, j'obtiens des tas de lignes qui se croisent et de recroisent...
(16 Mar '17, 01:20)
ettoremajorana
D'accord. En fait, oui, je serai curieux de savoir comment vous tracez la courbe. Et donc, je suis preneur de l'autre méthode de calcul.
(16 Mar '17, 12:30)
ettoremajorana
Pour tracer la courbe il suffit de compiler le code que j'ai proposé en remplaçant
(16 Mar '17, 12:43)
touhami
Pour la deuxième méthode, remplacer par N'oublier pas de supprimer le fichier
(16 Mar '17, 12:43)
touhami
Avec la deuxième méthode on obtient
(16 Mar '17, 12:59)
touhami
Affichage de 5 parmi 6
Afficher 1 commentaire(s) en plus
|
Pour la question 3 (moins importante) il suffit d'ajouter l'option
only marks
.Pour la question 1 on peut le faire avec l'extension
pgfplots
mais il faut ajouter une troisième colonne(x,y)
dans le fichier des données.La question 2 n'est pas claire pour moi (désolé).
Je ne suis pas un expert
tikz
donc il peut avoir des solutions plus propres.Que sont les points à l'intérieur et à l'extérieur de la spirale si ce doivent être des points de la spirale ? Et que vaut $k$ ?
@Bernard. $k=0.55$. Je souhaiterais transformer ces points en disque dont le diamètre irait de 1 à 7 en taille relative, les plus petits à l'intérieur de la spirale (c'est-à-dire près du centre et les plus grands à l'extérieur de la spirale. En somme, j'essaye de reproduire la figure qu'on peut visualiser à http://flyingpudding.com/projects/florets/applet/ Avec un angle seed de 137,508 degrés. Innermost diameter : 1. Outermost diameter : 7.
@touhami. Merci pour la résolution de la question 3. Impeccable.
@touhami. L'extension pgfplots ne fonctionne pas avec tikz. en effet, "draw[loosely dotted] plot[only marks,mark=ball,pgfplots] file {listepointsspirale};" donne un message d'erreur.
La solution que je propose vous laisse avec un fichier
SpFermat.dat
. Merci de me faire connaitre s'il convient aux données que vous avez.