itc:tps:tp4:exercice1
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Prochaine révision | Révision précédente | ||
| itc:tps:tp4:exercice1 [2021/12/03 13:52] – créée goupillwiki | itc:tps:tp4:exercice1 [2021/12/13 13:36] (Version actuelle) – goupillwiki | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| ====== Dessin du flocon de Von Koch ====== | ====== Dessin du flocon de Von Koch ====== | ||
| - | ===== Le type '' | + | ===== Le type complex en Python ===== |
| Pour travailler en Python avec les nombres complexes, on dispose du type natif '' | Pour travailler en Python avec les nombres complexes, on dispose du type natif '' | ||
| Ligne 35: | Ligne 35: | ||
| </ | </ | ||
| - | ===== Un motif ===== | + | ===== Tracer ===== |
| + | |||
| + | On utilise le module '' | ||
| + | |||
| + | <code python> | ||
| + | import matplotlib.pyplot as plt | ||
| + | </ | ||
| + | |||
| + | **Rappel :** Pour tracer une ligne polygonale ABCD..., on utilise '' | ||
| + | |||
| + | <code python> | ||
| + | plt.plot([1, | ||
| + | # k pour noir. Autrement r pour rouge, b pour bleu | ||
| + | </ | ||
| + | |||
| + | <WRAP tip> | ||
| + | * '' | ||
| + | * '' | ||
| + | </ | ||
| + | |||
| + | <WRAP box> | ||
| + | **À faire :** écrire une fonction '' | ||
| + | |||
| + | Vous pourrez tester avec '' | ||
| + | </ | ||
| + | |||
| + | ====== Motif élémentaire | ||
| On sait que dans le plan complexe l' | On sait que dans le plan complexe l' | ||
| Ligne 43: | Ligne 69: | ||
| {{ : | {{ : | ||
| - | On utilise le module '' | ||
| - | * le tracé d'un segment d' | ||
| - | * le tracé d'une ligne brisée '' | ||
| - | '' | ||
| - | On crée d' | + | Partant des points $A$ et $B$, on doit déterminer la position des points $C$, $D$ et $E$. |
| - | Avec un angle de $\frac{\pi}{3}$, $A$ et $B$ étant donnés, on construit ainsi un point $C$ tel que $ABC$ soit un triangle équilatéral qui tourne dans le sens trigonométrique positif. | + | |
| + | * $D$ est tel que $\overrightarrow{AD} = \frac{2}{3} \overrightarrow{AB}$ | ||
| + | * $E$ est l' | ||
| + | <WRAP box>**À faire :** écrire une fonction '' | ||
| + | </ | ||
| + | |||
| + | ===== Côté du flocon ===== | ||
| + | |||
| + | La fonction précédente remplace un segment par une ligne polygonale de 4 segments. On voudrait répéter ce processus sur les 4 segments. | ||
| + | |||
| + | Autrement dit, nous sommes partis de $AB$ et sommes arrivés à la ligne $ACEDB$. On voudrait faire de même sur $AC$, $CE$, $ED$, $DB$. | ||
| + | |||
| + | Et ainsi de suite jusqu' | ||
| + | |||
| + | On a une fonction récursive. Nous allons écrire une fonction '' | ||
| + | |||
| + | <code lang-none linenums: | ||
| + | FONCTION decoupe_rec(affixes_in, | ||
| + | ENTRÉES: | ||
| + | affixes_in: tableau d' | ||
| + | n: profondeur de la récursion | ||
| + | SORTIE: affixe_out, tableau des affixes résultant du découpage de affixe_in | ||
| + | DÉBUT | ||
| + | SI n = 0 ALORS | ||
| + | RENVOYER affixes_in | ||
| + | FIN | ||
| + | N = nombre d' | ||
| + | affixes_out est tableau vide | ||
| + | POUR i ALLANT DE 0 À N-2 FAIRE | ||
| + | A est affixes_in[i] | ||
| + | B est affixes_in[i+1] | ||
| + | ACEDB est le résultat de decoupe(A, B) | ||
| + | # on poursuit le découpage récursivement | ||
| + | rec_AB est le résultat de decoupe_rec(ACEDB, | ||
| + | ajouter les affixes de rec_AB au bout de affixes_out | ||
| + | sauf le dernier | ||
| + | FIN | ||
| + | ajouter l' | ||
| + | RENVOYER affixes_out | ||
| + | FIN | ||
| + | </ | ||
| + | |||
| + | <WRAP box>**À faire :** écrivez la fonction '' | ||
| + | |||
| + | ===== Dessiner le flocon ===== | ||
| + | |||
| + | <WRAP box>**À faire :** exécutez | ||
| + | <code python> | ||
| + | affixes = [0+0j, 3+0j, 6-j] | ||
| + | flocon = decoupe_rec(affixes, | ||
| + | plot_complex(flocon, | ||
| + | </ | ||
| + | Modifiez les affixes pour obtenir un flocon hexagonal. | ||
| + | </ | ||
itc/tps/tp4/exercice1.1638535966.txt.gz · Dernière modification : de goupillwiki
