diff options
author | Camil Staps | 2016-01-26 08:55:15 +0100 |
---|---|---|
committer | Camil Staps | 2016-01-26 08:55:15 +0100 |
commit | c38acf81e2d6130ff440163aeefa4cf370f529a5 (patch) | |
tree | 5414b529039dcfbbf09c7f3fea6fba6075d482f7 | |
parent | census -1 (diff) |
-rw-r--r-- | .gitignore | 3 | ||||
-rw-r--r-- | ulam-triangular-golfed.tex | 2 | ||||
-rw-r--r-- | ulam-triangular.tex | 76 |
3 files changed, 81 insertions, 0 deletions
@@ -32,3 +32,6 @@ _minted-*/ Clean System Files/ census +# Images +*.png + diff --git a/ulam-triangular-golfed.tex b/ulam-triangular-golfed.tex new file mode 100644 index 0000000..c9d0794 --- /dev/null +++ b/ulam-triangular-golfed.tex @@ -0,0 +1,2 @@ +\documentclass{standalone}\usepackage{pgf}\let\z\let\z\e\advance\z\f\ifnum\z\h\the\z\a\newcount\a\i\a\j\a\l\a\x\a\y\a\p\a\q\a\n\i=1\l=1\p=-1\q=1\def\m#1{\e\i by1\e\j by1\e\x by\h\p\e\y by\h\q\pgfmathparse{isprime(\h\i)}\f\pgfmathresult=1\pgfpathcircle{\pgfpoint{\h\x cm}{\h\y cm}}3pt\fi\f\j=\l\e\l by1\j=0\f\p=1\p=-1\q=1\else\f\p=-1\p=0\q=-1\else\p=1\q=0\fi\fi\fi\f#1>0\e#1by-1\m#1\fi}\begin{document}\begin{pgfpicture}\pgftransformcm10{cos(60)}{sin(60)}\pgfpointorigin\n=4000\m\n\pgfusepath{fill}\end{pgfpicture}\end{document} + diff --git a/ulam-triangular.tex b/ulam-triangular.tex new file mode 100644 index 0000000..8e4e0e1 --- /dev/null +++ b/ulam-triangular.tex @@ -0,0 +1,76 @@ + \documentclass[border=10cm]{standalone} + + \usepackage{pgf} + + \newcount\ulami + \newcount\ulamj + \newcount\ulamlen + + \newcount\ulamx + \newcount\ulamy + \newcount\ulamdx + \newcount\ulamdy + + \ulami=1 % + \ulamj=0 % + \ulamlen=1 % + \ulamdx=-1 % + \ulamdy=1 % + \ulamx=0 % + \ulamy=0 % + + \def\ulamplot#1{% + \advance\ulami by 1 % + \advance\ulamj by 1 % + + \advance\ulamx by \the\ulamdx % + \advance\ulamy by \the\ulamdy % + + \pgfpathmoveto{\pgfpoint{\the\ulamx cm}{\the\ulamy cm}} + + \pgfmathparse{isprime(\the\ulami)} + \let\r=\pgfmathresult + \ifnum\r=1 + \pgfpathcircle{\pgfpoint{\the\ulamx cm}{\the\ulamy cm}}{5pt} + \fi + + \ifnum\ulamj=\the\ulamlen % + \advance\ulamlen by 1 % + \ulamj=0 % + \ifnum\ulamdx=1 % + \ulamdx=-1 % + \ulamdy=1 % + \else% + \ifnum\ulamdx=-1 % + \ulamdx=0 % + \ulamdy=-1 % + \else% + \ulamdx=1 % + \ulamdy=0 % + \fi + \fi + \fi + + \ifnum#1>0 % + \advance#1 by -1 % + \ulamplot{#1}% + \fi + } + + \begin{document} + + \begin{pgfpicture} + \pgfmathsetmacro{\x}{cos(60)} + \pgfmathsetmacro{\y}{sin(60)} + \pgftransformcm{1}{0}{\x}{\y}{\pgfpointorigin} + + \pgfpathmoveto{\pgfpointorigin} + \color{blue} + \newcount\ulamn + \ulamn=400 + \ulamplot{\ulamn} + \pgfusepath{stroke,fill} + \end{pgfpicture} + + \end{document} + |