mirror of
https://github.com/MartinThoma/LaTeX-examples.git
synced 2025-04-26 06:48:04 +02:00
tikz/pi: Add
This commit is contained in:
parent
7f1684d2c1
commit
2a30558690
5 changed files with 108 additions and 0 deletions
31
tikz/pi/Makefile
Normal file
31
tikz/pi/Makefile
Normal file
|
@ -0,0 +1,31 @@
|
|||
SOURCE = pi
|
||||
DELAY = 80
|
||||
DENSITY = 300
|
||||
WIDTH = 512
|
||||
|
||||
make:
|
||||
pdflatex $(SOURCE).tex -output-format=pdf
|
||||
make clean
|
||||
|
||||
clean:
|
||||
rm -rf $(TARGET) *.class *.html *.log *.aux *.data *.gnuplot
|
||||
|
||||
gif:
|
||||
pdfcrop $(SOURCE).pdf
|
||||
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
|
||||
make clean
|
||||
|
||||
png:
|
||||
make
|
||||
make svg
|
||||
inkscape $(SOURCE).svg -w $(WIDTH) --export-png=$(SOURCE).png
|
||||
|
||||
transparentGif:
|
||||
convert $(SOURCE).pdf -transparent white result.gif
|
||||
make clean
|
||||
|
||||
svg:
|
||||
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
|
||||
pdf2svg $(SOURCE).pdf $(SOURCE).svg
|
||||
# Necessary, as pdf2svg does not always create valid svgs:
|
||||
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg
|
10
tikz/pi/README.md
Normal file
10
tikz/pi/README.md
Normal file
|
@ -0,0 +1,10 @@
|
|||
Compiled example
|
||||
----------------
|
||||

|
||||
|
||||
|
||||
Credits
|
||||
-------
|
||||
Cristian Ilies Vasile made this kind of image first:
|
||||
|
||||
https://img.washingtonpost.com/wp-apps/imrs.php?src=https%3A%2F%2Fimg.washingtonpost.com%2Fblogs%2Fwonkblog%2Ffiles%2F2015%2F03%2Flinks-pi-cristian.png&w=1484
|
36
tikz/pi/create.py
Normal file
36
tikz/pi/create.py
Normal file
|
@ -0,0 +1,36 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
"""Create a data.csv file."""
|
||||
|
||||
import csv
|
||||
|
||||
try:
|
||||
# import version included with old SymPy
|
||||
from sympy.mpmath import mp
|
||||
except ImportError:
|
||||
# import newer version
|
||||
from mpmath import mp
|
||||
|
||||
mp.dps = 1000 # set number of digits
|
||||
pi = mp.pi
|
||||
print(pi)
|
||||
|
||||
# Split pi in groups of two digits
|
||||
pi = str(pi)[2:]
|
||||
split_pi = []
|
||||
for i in range(0, len(pi), 2):
|
||||
part = pi[i:i + 2]
|
||||
if len(part) != 2:
|
||||
continue
|
||||
split_pi.append(part)
|
||||
|
||||
# Representation of pi
|
||||
data = [("x", "y", "color")] # header
|
||||
for e1, e2 in zip(split_pi, split_pi[1:]):
|
||||
tuple_date = (int(e1), int(e2), "c{}".format(int(int(e1) / 10)))
|
||||
data.append(tuple_date)
|
||||
|
||||
# Write data to csv
|
||||
with open('data.csv', 'w') as fp:
|
||||
writer = csv.writer(fp, delimiter=',')
|
||||
writer.writerows(data)
|
BIN
tikz/pi/pi.png
Normal file
BIN
tikz/pi/pi.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 267 KiB |
31
tikz/pi/pi.tex
Normal file
31
tikz/pi/pi.tex
Normal file
|
@ -0,0 +1,31 @@
|
|||
\documentclass{standalone}
|
||||
\usepackage{amssymb}
|
||||
\usepackage{tikz}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage{csvsimple}
|
||||
\usepackage{xcolor}
|
||||
|
||||
\definecolor{c0}{HTML}{5A311D}
|
||||
\definecolor{c1}{HTML}{E18B4E}
|
||||
\definecolor{c2}{HTML}{4A1776}
|
||||
\definecolor{c3}{HTML}{C966DA}
|
||||
\definecolor{c4}{HTML}{04676C}
|
||||
\definecolor{c5}{HTML}{0CE7E1}
|
||||
\definecolor{c6}{HTML}{004692}
|
||||
\definecolor{c7}{HTML}{0082FF}
|
||||
\definecolor{c8}{HTML}{355128}
|
||||
\definecolor{c9}{HTML}{DF1C24}
|
||||
|
||||
\begin{document}
|
||||
\newcommand{\distance}{6}
|
||||
|
||||
\begin{tikzpicture}
|
||||
\foreach \a in {0,1,...,100}{
|
||||
\node[draw=none](\a) at (\a/100*360: \distance) {} ;
|
||||
}
|
||||
\csvreader[ head to column names]%
|
||||
{data.csv}{}{%
|
||||
\path (\x) edge [bend right, \color] (\y);
|
||||
}
|
||||
\end{tikzpicture}
|
||||
\end{document}
|
Loading…
Add table
Add a link
Reference in a new issue