aboutsummaryrefslogtreecommitdiffstats
path: root/buch/papers/punktgruppen/tikz
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--buch/papers/punktgruppen/tikz/stereographic-projections.tex90
1 files changed, 90 insertions, 0 deletions
diff --git a/buch/papers/punktgruppen/tikz/stereographic-projections.tex b/buch/papers/punktgruppen/tikz/stereographic-projections.tex
new file mode 100644
index 0000000..4091ad9
--- /dev/null
+++ b/buch/papers/punktgruppen/tikz/stereographic-projections.tex
@@ -0,0 +1,90 @@
+\documentclass[tikz]{standalone}
+\usepackage{amsmath}
+\usepackage{times}
+\usepackage{txfonts}
+\usepackage{tikz-3dplot}
+
+\usetikzlibrary{arrows}
+\usetikzlibrary{intersections}
+\usetikzlibrary{math}
+\usetikzlibrary{positioning}
+\usetikzlibrary{arrows.meta}
+\usetikzlibrary{shapes.misc}
+\usetikzlibrary{calc}
+
+\begin{document}
+
+\tdplotsetmaincoords{60}{130}
+\pgfmathsetmacro{\l}{2}
+
+\begin{tikzpicture}[
+ >=latex,
+ tdplot_main_coords,
+ dot/.style = {
+ black, fill = black, circle,
+ outer sep = 0, inner sep = 0,
+ minimum size = 1mm
+ },
+ round/.style = {
+ draw = orange, thick, circle,
+ minimum size = 1mm,
+ inner sep = 0pt, outer sep = 0pt,
+ },
+ cross/.style = {
+ cross out, draw = magenta, thick,
+ minimum size = 1mm,
+ inner sep = 0pt, outer sep = 0pt
+ },
+ ]
+
+ % origin
+ \coordinate (O) at (0,0,0);
+
+ % poles
+ \coordinate (NP) at (0,0,\l);
+ \coordinate (SP) at (0,0,-\l);
+
+ % axis
+ % \draw[->] (O) -- ++(1.5*\l,0,0);
+ % \draw[->] (O) -- ++(0,1.5*\l,0);
+ % \draw[->] (O) -- ++(0,0,1.5*\l);
+
+ % gray unit circle
+ \tdplotdrawarc[gray, dashed]{(O)}{\l}{0}{360}{}{};
+ \draw[gray, dashed] (-\l, 0, 0) to (\l, 0, 0);
+ \draw[gray, dashed] (0, -\l, 0) to (0, \l, 0);
+
+ % meridians
+ \foreach \phi in {0, 30, 60, ..., 150}{
+ \tdplotsetrotatedcoords{\phi}{90}{0};
+ \tdplotdrawarc[lightgray, dashed, tdplot_rotated_coords]{(O)}{\l}{0}{360}{}{};
+ }
+
+ % dot above and its projection
+ \pgfmathsetmacro{\phi}{120}
+ \pgfmathsetmacro{\theta}{60}
+
+ \pgfmathsetmacro{\px}{cos(\phi)*sin(\theta)*\l}
+ \pgfmathsetmacro{\py}{sin(\phi)*sin(\theta)*\l}
+ \pgfmathsetmacro{\pz}{cos(\theta)*\l})
+
+ \coordinate (A) at (\px,\py,\pz);
+ \coordinate (Aproj) at ({\px * \l / (\l + \pz)}, {\py * \l / (\l + \pz)}, 0);
+
+ % projection line
+ \draw[] (A) to (SP);
+ \draw[gray] (SP) to (O) to (Aproj);
+
+ % dot
+ \draw (O) node[dot] {};
+ \draw (SP) node[dot] {};
+ \draw (A) node[dot, fill=magenta] {};
+ \draw[very thick, magenta]
+ (Aproj) ++(.15,0) to ($(Aproj)+(-.15, 0)$)
+ (Aproj) ++(0,.15) to ($(Aproj) +(0, -.15)$);
+
+ % \draw (O) to ({cos(\phi)*\l}, {sin(\phi)*\l}, 0);
+
+\end{tikzpicture}
+\end{document}
+% vim:ts=2 sw=2 et: