Dessiner des motifs "séquentiels"

Tout ce qui concerne le langage TeX/LaTeX et ses variantes. Ce langage est utilisable sur le forum via les balises tex.
[participation réservée aux utilisateurs inscrits]
Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
tnnico
Utilisateur confirmé
Utilisateur confirmé
Messages : 84
Inscription : jeudi 25 juin 2009, 14:06

Dessiner des motifs "séquentiels"

Message non lu par tnnico »

Bonjour à tous,

Je souhaite dessiner des motifs qui se transforment avec une règle simple à chaque étape.
Mais je n'arrive pas à les dessiner de manière efficace, c'est à dire sans tout dessiner.
Ce n'est pas très clair, aussi voilà ce que je voudrais obtenir avec des boucles permettant de dessiner autant d'étapes que nécessaire.
d752514e016f4bdae28f211101af78a5397b50ae.svg
Avec un code qui permet de faire plus d'étapes facilement\dots

Code : Tout sélectionner

\begin{tikzpicture}[semithick,scale=.25]
	\def\ldep{0}
	\foreach \i in {1,2,3}{
		\pgfmathparse{\i+1}
		\def\nbli{\pgfmathresult}
		\foreach \j in {-\i,...,\i}{
			\draw (\j,-\ldep) rectangle +(1,1);
		}
		\foreach \j in {\ldep+1,...,\ldep+\i+1}{
			\draw (0,-\j) rectangle +(1,1);
		}
		\pgfmathparse{\ldep+\i+1}
		\def\ldep{\pgfmathresult}
		}
\end{tikzpicture}
Merci d'avance pour vos réponses.
projetmbc
Utilisateur chevronné
Utilisateur chevronné
Messages : 2278
Inscription : samedi 29 décembre 2007, 00:58

Re: Dessiner des motifs "séquentiels"

Message non lu par projetmbc »

Bonsoir.

Il existe un package polyomino qui devrait pouvoir faire le travail...
tnnico
Utilisateur confirmé
Utilisateur confirmé
Messages : 84
Inscription : jeudi 25 juin 2009, 14:06

Re: Dessiner des motifs "séquentiels"

Message non lu par tnnico »

Bonjour à tous,

le package polyomino ne me convient pas, car je voudrais dessiner toute sorte de patterns évolutifs.

En fait mon seul problème est que je n'arrive pas à modifier les variables notamment lorsqu'elles sont dans une boucle.

J'ai essayé avec \tikzmath{\ldep=\ldep+\i+1} puis la même chose avec \pgfmathparse, je pense que là c'est le \def\ldep\pgfmathresult qui ne convient pas...
evariste_G
Utilisateur chevronné
Utilisateur chevronné
Messages : 1489
Inscription : vendredi 19 décembre 2008, 19:13
Statut actuel : Enseignant
Localisation : Bordeaux

Re: Dessiner des motifs "séquentiels"

Message non lu par evariste_G »

Bonjour.

Je vous propose ce code :
eae9892acf3e90fd76a69c0f4a5a6b2c90b16359.svg
Mathématiques, LaTeX et Python : https://www.mathweb.fr
Cours particuliers de maths par webcam: https://courspasquet.fr
Trouver/donner des cours particuliers: https://lesvraisprofs.mathweb.fr/
tnnico
Utilisateur confirmé
Utilisateur confirmé
Messages : 84
Inscription : jeudi 25 juin 2009, 14:06

Re: Dessiner des motifs "séquentiels"

Message non lu par tnnico »

Bonjour et merci pour votre réponse,

c'est presque ce que je voudrais, sauf que je voudrais le faire dans un seul environnement tikzpicture.

Par exemple ce genre de code :

Code : Tout sélectionner

\documentclass[11pt,a4paper]{article}
\usepackage[latin1]{inputenc}
\usepackage{xspace}

\usepackage[french]{babel}

\usepackage{tikz}
\usetikzlibrary{calc}

\newcommand{\drawpattern}[2]{ % #1 = nombre de carrés à droite et à gauche
							  % #2 = ligne de début du motif
    	\draw (0,\#2) rectangle (+1,-1);
        \foreach\x in {1,...,#1} {
        	\draw (\x,#2) rectangle +(1,-1);
        	\draw (-\x+1,#2) rectangle +(-1,-1);
        	\draw (0,-\x-#2) rectangle +(1,-1);
        }
}
 
\begin{document}

\begin{tikzpicture}[scale=.3]
	\foreach \ligne in {0,3,8}{ 
		\drawpattern{1}{\ligne}
	}
\end{tikzpicture}

\end{document}
De plus, le deuxième paramètre de la commande \drawpattern est superflu et je voudrais pouvoir le calculer avec une variable (c'était la variable \ldep dans ma première question).

Encore merci !