Marco87″ post=81557Mi è sorto, però, un altro quesito: cosa succede dentro il ciclo? Se cerco [tt]coordinate[/tt][ [tt]pos[/tt] nel manuale di [tt]TikZ[/tt] non trovo nulla, e non capisco che cosa faccia.
Onestamente ci sono un sacco di cose non documentate in TikZ: prova a cercare la libreria [tt]3d[/tt] o la macro [tt]againpath[/tt], non le troverai. Ma esistono: `gedit $(kpsewhich tikzlibrary3d.code.tex) #Libreria 3d
grep againpath $(kpsewhich tikz.code.tex) #Macro` In questo caso, però, trovi la sintassi a pagina 175:
There is a special syntax for specifying “light-weighed” nodes:
`\path . . . coordinate[ options ]( name )at( coordinate ) . . . ;`
This has the same effect as
`node[shape=coordinate][] options ]( name )at( coordinate ){},`
where the at part might be missing.
Serve per usare le coordinate che hanno un comportamento leggermente diverso dai nodi, vedi TikZ: difference between \node and \coordinate?
Sostanzialmente, quello che fa il codice di Alain dentro il ciclo è questo:
1) fissa la coordinata iniziale `\path[coordinate] coordinate(X) at (A){};` nota che se sostituisci con `\coordinate (X) at (A);` dovrebbe funzionare uguale;
2) calcola un percorso che partendo dalla coordinata iniziale arrivi a [tt]0.15[/tt] di distanza rispetto alla coordinata successiva;
3) itera aggiornando le posizioni delle coordinate, si vede da `(A) — (B) coordinate[pos=.15](A) % da A vado a 0.15 B e salvo la posizione in A `
Puoi dedurre il comportamento facendo contrassegnare il primo giro fuori dal ciclo: `
\documentclass{article}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz}
\begin{document}
\newcounter{density}
\setcounter{density}{20}
\begin{tikzpicture}
\def\couleur{MidnightBlue}
\path[coordinate] (0,0) coordinate(A)
++( 60:12cm) coordinate(B)
++(-60:12cm) coordinate(C);
\draw[fill=\couleur!\thedensity] (A) — (B) — (C) — cycle;
\path[red] (A) — (B) node[circle,draw,red,pos=.15]{x}
— (C) node[circle,draw,red,pos=.15]{x}
— (A) node[circle,draw,red,pos=.15]{x};
\foreach \x[evaluate=\x as \mydensity using int(\x*10+\thedensity)] in {1,…,15}{%
\path[coordinate] coordinate(X) at (A){};
\path[coordinate] (A) — (B) coordinate[pos=.15](A)
— (C) coordinate[pos=.15](B)
— (X) coordinate[pos=.15](C);
\draw[fill=\couleur!\mydensity] (A)–(B)–(C)–cycle;
}
\end{tikzpicture}
\end{document}
` Risultato:
[attachment=587]Senzanome_2013-01-23-2.jpg[/attachment]
Ciao
Claudio