コッホ雪片
レンダリング結果



先頭3ページのみプレビューしています。
PDFを開くTeXソース
TeXソース
入力コード
\documentclass[dvipdfmx]{article}
\usepackage{tikz}
\pagestyle{empty}
\usepackage[dvipdfmx,active,tightpage]{preview}
\PreviewEnvironment{center}
\setlength\PreviewBorder{5mm}
\makeatletter
\newcount\@maxDepth
\newcount\@nest
\newcount\@@nest
\newcount\@nextdeg
\def\@prefix{Koch}
\def\@relax{\relax}
\def\F{F-F++F-F}
\def\build#1{%
\@maxDepth=#1
\advance\@maxDepth-1
%%% expand the L-system string ( -> \@lsystem )
\@nest=0
\@namedef{\@prefix0}{}%
\@expandLsystem F++F++F\relax
\edef\@lsystem{\@nameuse{\@prefix0}}%
%%% build the TikZ source ( -> \Points )
\def\Points{(0,0)}%
\expandafter\@buildPoints\@lsystem\relax
}
%%% expand the L-system string recursively up to \@maxDepth and set \@lsystem to the result
\def\@expandLsystem#1{%
\def\@target{#1}%
\ifx\@target\@relax
\let\@next\relax
\else
\if\@target F
\ifnum\@nest<\@maxDepth\relax
\advance\@nest1
\@namedef{\@prefix\the\@nest}{}%
\expandafter\expandafter\expandafter\@expandLsystem\csname\@target\endcsname\relax
\@@nest=\@nest
\advance\@nest-1
\expandafter\edef\csname\@prefix\the\@nest\endcsname{\csname\@prefix\the\@nest\endcsname\csname\@prefix\the\@@nest\endcsname}%
\else
\expandafter\edef\csname\@prefix\the\@nest\endcsname{\csname\@prefix\the\@nest\endcsname F}%
\fi
\else
\expandafter\edef\csname\@prefix\the\@nest\endcsname{\csname\@prefix\the\@nest\endcsname\@target}%
\fi
\let\@next\@expandLsystem
\fi
\@next
}
%%% translate L-system \@lsystem into TikZ source \Points
\def\@buildPoints#1{%
\def\@target{#1}%
\ifx\@target\@relax
\let\@next\relax
\else
\if\@target+
\advance\@nextdeg60
\fi
\if\@target-
\advance\@nextdeg-60
\fi
\if\@target F
\edef\Points{\Points--++(\the\@nextdeg:1)}%
\fi
\let\@next\@buildPoints
\fi
\@next
}
\begin{document}
\newdimen\scale
\newcount\size
\foreach \i in {1,...,7}{%
\begin{center}
\build{\i}%
\scale=20cm
\size=1
\foreach \j in {1,...,\i}{%
\global\divide\scale3
\global\multiply\size3
}%
\begin{tikzpicture}[x=\scale,y=\scale,thick]
\fill[color=red!60!white]\Points;
\end{tikzpicture}%
\par\vspace{3mm}{\Huge$n=\i$}%
\newpage
\end{center}
}
\end{document}