539 lines
20 KiB
TeX
539 lines
20 KiB
TeX
\documentclass[11pt]{beamer}
|
||
|
||
\usepackage{xunicode}% for XeTex!
|
||
\usepackage{fontspec}% for XeTex!
|
||
\usepackage{xltxtra} % for XeTex!
|
||
|
||
\usepackage{amsfonts}% for Z12
|
||
\usepackage[french]{babel}
|
||
\usepackage{url}
|
||
\usepackage{tikz}
|
||
\usetikzlibrary{shapes}
|
||
\usetikzlibrary{shapes.geometric}
|
||
\usetikzlibrary{positioning}
|
||
\usetikzlibrary{fit}
|
||
\usetikzlibrary{lindenmayersystems}% for Hilbert curve
|
||
\usetikzlibrary{external}
|
||
\tikzexternalize[prefix=figs/]
|
||
\tikzset{external/system call={xelatex \tikzexternalcheckshellescape
|
||
-halt-on-error -interaction=batchmode -jobname "\image" "\texsource"}}
|
||
\usepackage[lofdepth,lotdepth]{subfig}% replaces subfigure
|
||
|
||
% The presentation specific packages
|
||
%\usepackage{hyperref}
|
||
\usepackage{multimedia}
|
||
|
||
\defaultfontfeatures{Scale=MatchLowercase}
|
||
\setromanfont[Mapping=tex−text]{Linux Libertine O}
|
||
\setsansfont [Mapping=tex−text]{Ubuntu}
|
||
\setmonofont [Mapping=tex−text]{Inconsolata}
|
||
|
||
\newcommand{\ircam}{Ircam}
|
||
\newcommand{\lps}{Lps}
|
||
\newcommand{\lisp}{Lisp}
|
||
\newcommand{\mlys}{Modalys}
|
||
\newcommand{\om}{OpenMusic}
|
||
\newcommand{\mpri}{Mpri}
|
||
\newcommand{\todo}{\fbox{\texttt{todo}}}
|
||
\newcommand{\sonif}[2]{%
|
||
\parbox{2ex}{\includegraphics[height=2ex]{figs/speaker}}%
|
||
\hspace{.5em}\emph{#2}}
|
||
|
||
\hyphenation{con-cen-trent}
|
||
\AtBeginSection[]{
|
||
\frame{\sectionpage}
|
||
}
|
||
|
||
\pgfdeclarelindenmayersystem{Hilbert curve}{% Rewrite rule for Hilbert curve
|
||
\rule{L -> +RF-LFL-FR+}
|
||
\rule{R -> -LF+RFR+FL-}}
|
||
|
||
\begin{document}
|
||
\title{De la sonification à la « musification »\\de systèmes complexes}
|
||
\subtitle{Présentation de stage}
|
||
\author{Martin Potier\\
|
||
{\scriptsize MPRI, Université Paris Diderot}}
|
||
\date{6 septembre 2012}
|
||
\institute{
|
||
{\small\textbf{Wiebke Drenckhan}}\\
|
||
Laboratoire de Physique des Solides, Université Paris Sud, CNRS \and
|
||
{\small\textbf{Moreno Andreatta} et \textbf{Jean-Louis Giavitto}}\\
|
||
Équipe Représentation Musicales, Institut de Recherche et Coordination Acoustique/Musique, CNRS}
|
||
|
||
% Each presentation will last 30 minutes (20 minutes of presentation + 10
|
||
% minutes of questions). A video-projector will be available.
|
||
|
||
\frame{\titlepage}
|
||
|
||
\begin{frame}{Plan}
|
||
\tableofcontents
|
||
\end{frame}
|
||
|
||
\section{Motivations : comment se comporte une mousse ?}
|
||
% Trouver des lois d'un système complexe sans connaissance a priori
|
||
\begin{frame}{Comprendre l'évolution d'une mousse liquide en deux dimensions}
|
||
% movie
|
||
%\movie[width=\textwidth,height=.8\textheight]{
|
||
% \includegraphics[width=\textwidth,height=.8\textheight]{figs/poster}}
|
||
%{figs/coarsening.avi}
|
||
\end{frame}
|
||
|
||
\begin{frame}{Comprendre l'évolution d'une mousse liquide (suite)}
|
||
\begin{center}
|
||
Comment qualifier ces 3 organisations spatiales ?
|
||
\end{center}
|
||
|
||
\begin{columns}
|
||
\column{.3\textwidth}
|
||
\includegraphics[width=\textwidth]{figs/foam2D-honeycomb}
|
||
\column{.3\textwidth}
|
||
\includegraphics[width=\textwidth]{figs/foam2D-grain-boundaries}
|
||
\column{.3\textwidth}
|
||
\includegraphics[width=\textwidth]{figs/foam2D-disordered}
|
||
\end{columns}
|
||
|
||
\pause
|
||
\begin{columns}
|
||
\column{.6\textwidth}
|
||
\includegraphics[width=\textwidth]{figs/lauriesfoam}
|
||
|
||
\column{.4\textwidth}
|
||
\begin{itemize}
|
||
\item 10 ans pour obtenir le modèle !
|
||
\item Pourrait-on aller plus vite ?
|
||
\item Pourrait-on \emph{entendre} la mousse ?
|
||
\end{itemize}
|
||
\end{columns}
|
||
\end{frame}
|
||
|
||
\section{De la sonification scientifique\ldots}
|
||
\begin{frame}{Un nouveau domaine}
|
||
\begin{itemize}
|
||
\item Propriétés intéressantes du système auditif : reconnaissance
|
||
des objets sonores évoluant \emph{dans le temps}, spatialisation,
|
||
multi-échelle, \ldots
|
||
\item En parallèle de la \emph{visualisation scientifique} des données.
|
||
\end{itemize}
|
||
|
||
\begin{quote}
|
||
« Sonification is the transformation of data relations into perceived
|
||
relations in an acoustic signal for the purposes of facilitating
|
||
communication or interpretation. »\hfill\textbf{Kramer~1999}
|
||
\end{quote}
|
||
|
||
\pause
|
||
\begin{center}
|
||
\usebeamercolor{frametitle}
|
||
\begin{tikzpicture}[align=center, every node/.style={fg,auto}]
|
||
\node (phystate) {État local du système};
|
||
\node (phyobs) [below=of phystate] {Observables};
|
||
\node (sonrel) [right=of phystate] {Relations sonores\\(analogiques)};
|
||
\node (sonobs) [below=of sonrel] {Objets sonores};
|
||
\node (qb) at (barycentric cs:phyobs=1,sonobs=1)
|
||
[black,yshift=-1cm,font=\scriptsize] {mappings\\sonification};
|
||
|
||
\draw[thick,->, dotted] (phyobs) -- (phystate);
|
||
\draw[black,thick,->] (phyobs) |- (qb) -| (sonobs);
|
||
\draw[black,thick,font=\scriptsize,->] (sonobs)
|
||
to node [swap,text width=21mm] {perception (IHM)} (sonrel);
|
||
\draw[black,thick,->,dotted] (sonrel) to node [swap] {?} (phystate);
|
||
\end{tikzpicture}
|
||
\end{center}
|
||
\end{frame}
|
||
|
||
\begin{frame}{\sonif{sound/M1}{M$_1$ : synthèse modale, timbre et ordre (30 s)}}
|
||
Utilise Modalys (outil de l'IRCAM) pour la synthèse de timbre
|
||
|
||
\medskip
|
||
\begin{center}
|
||
\begin{tabular}{|r|l|}
|
||
\hline
|
||
\textbf{Paramètres des bulles} & \textbf{Paramètres du mapping} \\
|
||
\hline
|
||
Nombre de voisines & Fréquence \\
|
||
Aire & Bande de fréquence \\
|
||
Périmètre & Amplitude \\
|
||
\hline
|
||
\end{tabular}
|
||
\end{center}
|
||
|
||
\medskip
|
||
Modalys simule 900 oscillateurs (un par bulle).
|
||
|
||
\pause\medskip
|
||
On peut entendre les 3 configurations spatiales précédentes :
|
||
|
||
\begin{description}
|
||
\item[Ordre] $\rightarrow$ fréquence pure ;
|
||
\item[Grain boundaries] $\rightarrow$ battement (deux fréquences proches) ;
|
||
\item[Désordre] $\rightarrow$ bruit non caractéristique.
|
||
\end{description}
|
||
|
||
On pourrait faire mieux\ldots
|
||
\end{frame}
|
||
|
||
\section{\ldots à la musification}
|
||
\begin{frame}{Enrichir la sonification}
|
||
\begin{columns}
|
||
\column{.7\textwidth}
|
||
\usebeamercolor{frametitle}
|
||
\pgfdeclarelayer{background}
|
||
\pgfsetlayers{background,main}
|
||
\begin{tikzpicture}[align=center, every node/.style={fg,auto}]
|
||
\node (phystate) {État local du système};
|
||
\node (phyobs) [below=of phystate] {Observables};
|
||
\node (sonrel) [right=of phystate] {Relations sonores\\(analogiques)};
|
||
\node (musrel) [above=of sonrel] {Relations musicales\\(symboliques)};
|
||
\node (sonobs) [below=of sonrel] {Objets sonores};
|
||
\node (phyrel) [above=of phystate] {État global du système\\Lois du système};
|
||
\node (qt) at (barycentric cs:musrel=1,phyrel=1) [black,yshift=1cm] {?};
|
||
\node (qb) at (barycentric cs:phyobs=1,sonobs=1)
|
||
[black,yshift=-1cm,font=\scriptsize] {mappings\\sonification/musification};
|
||
|
||
\draw[thick,->, dotted] (phyobs) -- (phystate);
|
||
\draw[thick,->, dotted] (phystate) -- (phyrel);
|
||
\draw[black,thick,->] (phyobs) |- (qb) -| (sonobs);
|
||
\draw[black,thick,font=\scriptsize,->] (sonobs)
|
||
to node [swap,text width=21mm] {perception (IHM)} (sonrel);
|
||
\draw[black,thick,->,dotted] (sonrel) to node [swap] {?} (phystate);
|
||
\draw[black,thick,->] (sonrel) to (musrel);
|
||
\draw[black,thick,->] (musrel.north) |- (qt) -| (phyrel.north);
|
||
|
||
\begin{pgfonlayer}{background}
|
||
\node[draw=gray,dashed,thick,fill=gray!10,inner sep=5mm,xshift=3mm,yshift=-4mm,
|
||
fit=(phystate) (sonrel) (sonobs) (phyobs) (qb)] {};
|
||
\end{pgfonlayer}
|
||
\end{tikzpicture}
|
||
|
||
\pause
|
||
\column{.3\textwidth}
|
||
\begin{itemize}
|
||
\item plus de paramètres
|
||
\item à plusieurs échelles
|
||
\item paramètres plus « riches »
|
||
\end{itemize}
|
||
Bande passante de données à mapper plus grande
|
||
\end{columns}
|
||
\end{frame}
|
||
|
||
\begin{frame}{\sonif{sound/M2}{M$_2$ : un mapping rythmique (22 s)}}
|
||
|
||
\begin{columns}
|
||
\column{.5\textwidth}
|
||
\includegraphics[width=\textwidth]{figs/chemin-rythm1}
|
||
\column{.5\textwidth}
|
||
\includegraphics[width=\textwidth]{figs/chemin-rythm2}
|
||
\end{columns}
|
||
|
||
40 premières itérations
|
||
|
||
\pause
|
||
\begin{columns}
|
||
\column{.5\textwidth}
|
||
\includegraphics[width=\textwidth]{figs/lauriesfoam}
|
||
|
||
\column{.5\textwidth}
|
||
Conclusion :
|
||
\begin{itemize}
|
||
\item on entend un changement
|
||
\item placement de $\Delta$ arbitraire
|
||
\item 1D alors que 2D
|
||
\end{itemize}
|
||
\end{columns}
|
||
\end{frame}
|
||
|
||
\begin{frame}{Des Tonnetz aux graphes de Cayley}
|
||
\begin{center}
|
||
\includegraphics[width=\textwidth]{figs/piano}
|
||
\end{center}
|
||
\hspace{2cm}$\downarrow$\hfill$\downarrow$\hspace{2cm}
|
||
|
||
\begin{columns}[c]
|
||
\column{.4\textwidth}
|
||
\includegraphics[width=\textwidth]{figs/eulers-tonnetz}\\
|
||
{\scriptsize L. Euler (1739)}
|
||
|
||
\column{.05\textwidth}
|
||
$$ \rightarrow $$
|
||
|
||
\column{.4\textwidth}
|
||
\begin{tikzpicture}
|
||
[note/.style={draw,black,circle,inner sep=.5mm,minimum size=8mm},
|
||
label distance=-1mm,label position=below left,
|
||
double distance=.5mm, scale=.5, transform shape]
|
||
\node[note,double] (C) {Do };
|
||
\node[note,left=of C] (F) {Fa };
|
||
\node[note,right=of C] (G) {Sol };
|
||
\node[note,right=of G] (D) {Ré };
|
||
|
||
\node[note,above=of F] (A) {La };
|
||
\node[note,right=of A] (E) {Mi };
|
||
\node[note,right=of E] (B) {Si };
|
||
\node[note,right=of B] (Fd) { Fa\#};
|
||
|
||
\node[note,above=of A] (Cd) { Do\#};
|
||
\node[note,right=of Cd] (Gd) {Sol\#};
|
||
\node[note,right=of Gd] (Dd) { Ré\#};
|
||
\node[note,right=of Dd] (Ad) { La\#};
|
||
|
||
\draw (F) -- (C) -- node[above,midway] {+7} (G) -- (D);
|
||
\draw (A) -- (E) -- (B) -- (Fd);
|
||
\draw (Cd) -- (Gd) -- (Dd) -- (Ad);
|
||
|
||
\draw (F) -- (A) -- (Cd);
|
||
\draw (C) -- node[right,midway] {+4} (E) -- (Gd);
|
||
\draw (G) -- (B) -- (Dd);
|
||
\draw (D) -- (Fd) -- (Ad);
|
||
|
||
\draw[dashed] (Cd.north) -- +(0cm ,6mm );
|
||
\draw[dashed] (Gd.north) -- +(0cm ,6mm );
|
||
\draw[dashed] (Dd.north) -- +(0cm ,6mm );
|
||
\draw[dashed] (Ad.north) -- +(0cm ,6mm );
|
||
\draw[dashed] (F.south) -- +(0cm ,-6mm);
|
||
\draw[dashed] (C.south) -- +(0cm ,-6mm);
|
||
\draw[dashed] (G.south) -- +(0cm ,-6mm);
|
||
\draw[dashed] (D.south) -- +(0cm ,-6mm);
|
||
\draw[dashed] (F.west) -- +(-6mm,0cm );
|
||
\draw[dashed] (A.west) -- +(-6mm,0cm );
|
||
\draw[dashed] (Cd.west) -- +(-6mm,0cm );
|
||
\draw[dashed] (Ad.east) -- +(6mm ,0cm );
|
||
\draw[dashed] (Fd.east) -- +(6mm ,0cm );
|
||
\draw[dashed] (D.east) -- +(6mm ,0cm );
|
||
\end{tikzpicture}
|
||
\end{columns}
|
||
|
||
\medskip
|
||
Une présentation possible du groupe $\mathbb{Z}_{12}$ avec deux générateurs :
|
||
$$ g_{4,7} = < \mathbf{4}, \mathbf{7}\ |\ 3.\mathbf{4} + 0.\mathbf{7} = 0,\quad0.\mathbf{4} +
|
||
12.\mathbf{7} = 0,\quad\mathbf{4} + \mathbf{7} = \mathbf{7} + \mathbf{4} > $$
|
||
\end{frame}
|
||
|
||
\begin{frame}{Des Tonnetz aux graphes de Cayley (suite)}
|
||
\begin{center}
|
||
\begin{tikzpicture}
|
||
[note/.style={draw,black,circle,inner sep=2mm},
|
||
hex/.style={},
|
||
label distance=-1mm,label position=below left,
|
||
double distance=.5mm,xscale=.60\textwidth/9.2cm,
|
||
yscale=.50\textwidth/9.2cm]
|
||
\begin{scope}[opacity=.5]
|
||
\node[note] (F) at (-1cm,0cm) {};
|
||
\node[note,double] (C) at ( 1cm,0cm) {};
|
||
\node[note] (G) at ( 3cm,0cm) {};
|
||
\node[note] (D) at ( 5cm,0cm) {};
|
||
|
||
\node[note] (A) at ( 0cm,2cm) {};
|
||
\node[note] (E) at ( 2cm,2cm) {};
|
||
\node[note] (B) at ( 4cm,2cm) {};
|
||
\node[note] (Fd) at ( 6cm,2cm) {};
|
||
|
||
\node[note] (Cd) at ( 1cm,4cm) {};
|
||
\node[note] (Gd) at ( 3cm,4cm) {};
|
||
\node[note] (Dd) at ( 5cm,4cm) {};
|
||
\node[note] (Ad) at ( 7cm,4cm) {};
|
||
|
||
\draw (F) -- (C) -- (G) -- (D);
|
||
\draw (A) -- (E) -- (B) -- (Fd);
|
||
\draw (Cd) -- (Gd) -- (Dd) -- (Ad);
|
||
|
||
\draw (F) -- (A) -- (Cd);
|
||
\draw (C) -- (E) -- (Gd);
|
||
\draw (G) -- (B) -- (Dd);
|
||
\draw (D) -- (Fd) -- (Ad);
|
||
\draw (Cd) -- (E) -- (G);
|
||
\draw (Gd) -- (B) -- (D);
|
||
\draw (Dd) -- (Fd);
|
||
\draw (A) -- (C);
|
||
|
||
\node (1u) at (barycentric cs:A=1,Cd=1,E=1) {};
|
||
\node (2u) at (barycentric cs:Gd=1,B=1,E=1) {};
|
||
\node (3u) at (barycentric cs:B=1,Dd=1,Fd=1) {};
|
||
\node (4u) at (barycentric cs:F=1,A=1,C=1) {};
|
||
\node (5u) at (barycentric cs:E=1,G=1,C=1) {};
|
||
\node (6u) at (barycentric cs:B=1,G=1,D=1) {};
|
||
\node (1d) at (barycentric cs:Cd=1,Gd=1,E=1) {};
|
||
\node (2d) at (barycentric cs:Dd=1,Gd=1,B=1) {};
|
||
\node (3d) at (barycentric cs:Dd=1,Ad=1,Fd=1) {};
|
||
\node (4d) at (barycentric cs:A=1,E=1,C=1) {};
|
||
\node (5d) at (barycentric cs:G=1,E=1,B=1) {};
|
||
\node (6d) at (barycentric cs:D=1,Fd=1,B=1) {};
|
||
|
||
\draw[dashed] (Cd.north) -- +(0cm ,6mm );
|
||
\draw[dashed] (Gd.north) -- +(0cm ,6mm );
|
||
\draw[dashed] (Dd.north) -- +(0cm ,6mm );
|
||
\draw[dashed] (Ad.north) -- +(0cm ,6mm );
|
||
\draw[dashed] (F.south) -- +(0cm ,-6mm);
|
||
\draw[dashed] (C.south) -- +(0cm ,-6mm);
|
||
\draw[dashed] (G.south) -- +(0cm ,-6mm);
|
||
\draw[dashed] (D.south) -- +(0cm ,-6mm);
|
||
\draw[dashed] (F.west) -- +(-6mm,0cm );
|
||
\draw[dashed] (A.west) -- +(-6mm,0cm );
|
||
\draw[dashed] (Cd.west) -- +(-6mm,0cm );
|
||
\draw[dashed] (Ad.east) -- +(6mm ,0cm );
|
||
\draw[dashed] (Fd.east) -- +(6mm ,0cm );
|
||
\draw[dashed] (D.east) -- +(6mm ,0cm );
|
||
\end{scope}
|
||
|
||
\draw[hex] (1u.center) -- (1d.center) -- (2u.center)
|
||
-- (2d.center) -- (3u.center) -- (3d.center);
|
||
\draw[hex] (4u.center) -- (4d.center) -- (5u.center)
|
||
-- (5d.center) -- (6u.center) -- (6d.center);
|
||
\draw[hex] (1u.center) -- (4d.center);
|
||
\draw[hex] (2u.center) -- (5d.center);
|
||
\draw[hex] (3u.center) -- (6d.center);
|
||
\draw[hex,dashed] (1d.center) -- +(0, 1.5cm);
|
||
\draw[hex,dashed] (2d.center) -- +(0, 1.5cm);
|
||
\draw[hex,dashed] (3d.center) -- +(0, 1.5cm);
|
||
\draw[hex,dashed] (4u.center) -- +(0,-1.5cm);
|
||
\draw[hex,dashed] (5u.center) -- +(0,-1.5cm);
|
||
\draw[hex,dashed] (6u.center) -- +(0,-1.5cm);
|
||
|
||
\draw[hex,dashed] (1u.center) -- +(150:1.0cm);
|
||
\draw[hex,dashed] (4u.center) -- +(150:1.0cm);
|
||
\draw[hex,dashed] (3d.center) -- +(-30:1.0cm);
|
||
\draw[hex,dashed] (6d.center) -- +(-30:1.0cm);
|
||
\end{tikzpicture}
|
||
\end{center}
|
||
|
||
Peut-on entendre la déformation d'une grille hexagonale ?
|
||
\end{frame}
|
||
|
||
\begin{frame}{\sonif{sounds/M3}{M$_3$ : un mapping intervallique (53 s)}}
|
||
\begin{columns}
|
||
\column{.2\textwidth}
|
||
\begin{tikzpicture}[rotate=30,scale=.5,
|
||
hex/.style={regular polygon, regular polygon sides=6, draw, inner sep=.5cm,
|
||
transform shape, text width=0}]
|
||
\node[hex,gray] (5) at ( 30:1.41cm) {}; %5
|
||
\node[hex,gray] (6) at ( 90:1.41cm) {}; %6
|
||
\node[hex,gray] (1) at (150:1.41cm) {}; %1
|
||
\node[hex,gray] (2) at (210:1.41cm) {}; %2
|
||
\node[hex,gray] (3) at (270:1.41cm) {}; %3
|
||
\node[hex,gray] (4) at (330:1.41cm) {}; %4
|
||
\node[hex,thick] (h) at (0,0) {};
|
||
|
||
\foreach \i in {1,...,6} {
|
||
\draw[gray,->,dashed] (h.center) -- (\i) node[gray] {\i} ;}
|
||
\end{tikzpicture}
|
||
|
||
\column{.6\textwidth}
|
||
\includegraphics[width=\textwidth]{figs/bulandhex}
|
||
\end{columns}
|
||
|
||
\medskip
|
||
\begin{columns}
|
||
\column{.3\textwidth}
|
||
\includegraphics[width=\textwidth]{figs/hex}
|
||
\column{.3\textwidth}
|
||
\includegraphics[width=\textwidth]{figs/bul}
|
||
\end{columns}
|
||
|
||
\medskip
|
||
\begin{center}
|
||
\end{center}
|
||
\end{frame}
|
||
|
||
\begin{frame}{\sonif{sounds/M4}{M$_4$ : un mapping intervallique et rythmique (58 s)}}
|
||
Association de M$_2$ (rythme comme distance entre points) et de M$_3$
|
||
(intervalles comme projection sur un tonnetz)
|
||
\end{frame}
|
||
|
||
\section{Conclusion}
|
||
\begin{frame}{Bilan \& Perspectives}
|
||
Réalisation d'une bibliothèque logicielle \textbf{Musify} avec OpenMusic :
|
||
\begin{itemize}
|
||
\item langage fonctionnel
|
||
\item analyse musicale computationnelle
|
||
\item réutilisation pour la composition
|
||
\end{itemize}
|
||
|
||
\includegraphics[width=\textwidth]{figs/visual-prog}
|
||
\end{frame}
|
||
|
||
\begin{frame}{Bilan \& Perspectives (suite)}
|
||
Les résultats sont encourageants :
|
||
\begin{itemize}
|
||
\item On repère des phases (épisodes catastrophiques)
|
||
\item Faible temps de calcul (< quelques secondes)
|
||
\item Beaucoup de variations à étudier
|
||
\end{itemize}
|
||
|
||
Ce qui est prévu :
|
||
\begin{itemize}
|
||
\item \texttt{gnusic} (en référence à gnuplot)
|
||
\item exploration assistée des mappings (système de types ?)
|
||
\end{itemize}
|
||
\end{frame}
|
||
|
||
\begin{frame}
|
||
\begin{center}
|
||
Merci de votre attention
|
||
\end{center}
|
||
\end{frame}
|
||
|
||
\bgroup
|
||
\setbeamercolor{background canvas}{bg=black}
|
||
\begin{frame}[plain]{}
|
||
\end{frame}
|
||
\egroup
|
||
|
||
\begin{frame}{Implémentation}
|
||
QHull, Triangulation de Delaunay
|
||
\end{frame}
|
||
|
||
\begin{frame}{De 2 à 3 dimensions}
|
||
Courbes de Hilbert :
|
||
|
||
\begin{center}
|
||
\begin{figure}[ht]
|
||
%\draw [opacity=.2,line join=round,line width=1cm,
|
||
% l-system={Hilbert curve, axiom=L, order=2, step=1cm, angle=90}]
|
||
\centering
|
||
\begin{tikzpicture}[scale=.80]
|
||
\clip (-.5,-.5) rectangle (3.5,3.5);
|
||
\draw [densely dotted] (-1,-1) grid (4,4);
|
||
\draw [l-system={Hilbert curve, axiom=L, order=1, step=3cm, angle=90}]
|
||
lindenmayer system;
|
||
\foreach \i in {0cm,3cm} {
|
||
\foreach \j in {0cm,3cm} {
|
||
\fill (\i,\j) circle (2pt);
|
||
\fill[opacity=.2] (\i,\j) circle (1.5cm);
|
||
}
|
||
}
|
||
\draw[<->|] (0,0) -- node[above left] {$r$} (45:1.5cm);
|
||
\end{tikzpicture}
|
||
\hfill
|
||
\begin{tikzpicture}[scale=.80]
|
||
\clip (-.5,-.5) rectangle (3.5,3.5);
|
||
\draw [densely dotted] (-1,-1) grid (4,4);
|
||
\draw [l-system={Hilbert curve, axiom=L, order=2, step=1cm, angle=90}]
|
||
lindenmayer system;
|
||
\foreach \i in {0cm,1cm,2cm,3cm} {
|
||
\foreach \j in {0cm,1cm,2cm,3cm} {
|
||
\fill (\i,\j) circle (2pt);
|
||
\fill[opacity=.2] (\i,\j) circle (0.5cm);
|
||
}
|
||
}
|
||
\draw[<->|] (0,0) -- (45:.5cm);
|
||
\end{tikzpicture}
|
||
\hfill
|
||
\begin{tikzpicture}[scale=.80]
|
||
\clip (-.5,-.5) rectangle (3.5,3.5);
|
||
\draw [densely dotted] (-1,-1) grid (4,4);
|
||
\draw [l-system={Hilbert curve, axiom=L, order=3, step=0.42857143cm, angle=90}]
|
||
lindenmayer system;
|
||
\foreach \i in {0cm,.42857143cm,.85714286cm,1.2857143cm,1.7142857cm,
|
||
2.1428571cm,2.5714286cm,3cm} {
|
||
\foreach \j in {0cm,.42857143cm,.85714286cm,1.2857143cm,1.7142857cm,
|
||
2.1428571cm,2.5714286cm,3cm} {
|
||
\fill (\i,\j) circle (2pt);
|
||
\fill[opacity=.2] (\i,\j) circle (.21428571cm);
|
||
}
|
||
}
|
||
\draw[-|] (0,0) -- (45:.21428571cm);
|
||
\end{tikzpicture}
|
||
\end{figure}
|
||
\end{center}
|
||
\end{frame}
|
||
|
||
\end{document}
|