visualisation/cylinder.tex

Fri, 06 Dec 2024 13:44:34 -0500

author
Tuomo Valkonen <tuomov@iki.fi>
date
Fri, 06 Dec 2024 13:44:34 -0500
changeset 42
271fba635bce
parent 37
d7cd14b8ccc0
child 43
5f04fe297b9a
permissions
-rw-r--r--

Adjust demonstrations

37
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
1 \documentclass[tikz]{standalone}
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
2
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
3 \input{plotsetup}
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
4
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
5 \def\datapath{../res/cylinder}
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
6
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
7 \begin{document}
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
8
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
9 \begin{tikzpicture}
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
10 \pgfplotsset{
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
11 onlyfront/.code = \pgfplotsset{x filter/.expression={%
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
12 \thisrow{face} == 0 || (%
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
13 and(\thisrow{face}==2, or(2*pi+\a <= \thisrow{angle}, \thisrow{angle} <= \b))
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
14 ) ? x : nan%
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
15 },},
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
16 onlyback/.code = \pgfplotsset{x filter/.expression={%
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
17 \thisrow{face} == 1 || (%
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
18 and(\thisrow{face}==2, or(2*pi+\a > \thisrow{angle}, \thisrow{angle} > \b))
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
19 ) ? x : nan%
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
20 },},
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
21 }
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
22
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
23 \pgfmathsetmacro{\a}{-pi*5/6}
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
24 \pgfmathsetmacro{\b}{pi/6}
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
25
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
26 \begin{axis}[illustr3d]
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
27 % Hidden edges
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
28 \addplot3[edge, domain=\b:(2*pi+\a), samples = 90, samples y = 0] ({cos(deg(x))}, {sin(deg(x))}, {-0.5});
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
29
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
30 % Data on hidden faces
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
31 \addplot3[backdata] table[
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
32 x expr = \thisrow{r} * cos(deg(\thisrow{angle})),
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
33 y expr = \thisrow{r} * sin(deg(\thisrow{angle})),
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
34 z = z,
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
35 ] {\datapath/data.csv};
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
36
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
37 % Iterates on hidden faces
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
38 \addplot3[backiter1,onlyback] table[
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
39 x expr = \thisrow{r} * cos(deg(\thisrow{angle})),
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
40 y expr = \thisrow{r} * sin(deg(\thisrow{angle})),
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
41 z = z,
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
42 ] {\datapath/x1_log.csv};
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
43 \addplot3[backiter2,onlyback] table[
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
44 x expr = \thisrow{r} * cos(deg(\thisrow{angle})),
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
45 y expr = \thisrow{r} * sin(deg(\thisrow{angle})),
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
46 z = z,
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
47 ] {\datapath/x2_log.csv};
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
48 \addplot3[backiter3,onlyback] table[
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
49 x expr = \thisrow{r} * cos(deg(\thisrow{angle})),
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
50 y expr = \thisrow{r} * sin(deg(\thisrow{angle})),
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
51 z = z,
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
52 ] {\datapath/x3_log.csv};
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
53
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
54 % Surface
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
55 \addplot3[
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
56 surf,
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
57 mesh/ordering=x varies, % the second input coordinate stays fixed while first varies
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
58 mesh/cols=16, % number of first input coordinate points untils second changes
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
59 surfstyle,
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
60 %x filter/.expression = {or(2*pi+\a <= \thisrow{angle}, \thisrow{angle} <= \b)},
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
61 ] table [
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
62 x expr = cos(deg(\thisrow{angle})),
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
63 y expr = sin(deg(\thisrow{angle})),
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
64 z = v,
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
65 point meta = \thisrow{value},
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
66 ] {\datapath/side_front.csv};
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
67 \addplot3[
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
68 surf,
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
69 mesh/ordering=x varies, % the second input coordinate stays fixed while first varies
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
70 mesh/cols=32, % number of first input coordinate points untils second changes
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
71 surfstyle,
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
72 ] table [
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
73 x expr = \thisrow{v} * cos(deg(\thisrow{angle})),
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
74 y expr = \thisrow{v} * sin(deg(\thisrow{angle})),
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
75 z expr = 0.5,
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
76 point meta = \thisrow{value},
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
77 ] {\datapath/top.csv};
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
78
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
79 % Edges
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
80 \addplot3[edge, domain={0:2*pi}, samples = 60, samples y = 0] ({cos(deg(x))}, {sin(deg(x))}, {0.5});
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
81 \addplot3[edge, domain={\a:\b}, samples = 60, samples y = 0] ({cos(deg(x))}, {sin(deg(x))}, {-0.5});
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
82 \addplot3[edge] coordinates { (cos(deg(\a)), sin(deg(\a)), -0.5) (cos(deg(\a)), sin(deg(\a)), 0.5) };
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
83 \addplot3[edge] coordinates { (cos(deg(\b)), sin(deg(\b)), -0.5) (cos(deg(\b)), sin(deg(\b)), 0.5) };
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
84
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
85 % Data
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
86 \addplot3[data, onlyfront] table[
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
87 x expr = \thisrow{r} * cos(deg(\thisrow{angle})),
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
88 y expr = \thisrow{r} * sin(deg(\thisrow{angle})),
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
89 z = z,
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
90 ] {\datapath/data.csv};
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
91 \addlegendentry{Data}
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
92
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
93 % Iterates
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
94 \addplot3[iter1,onlyfront] table[
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
95 x expr = \thisrow{r} * cos(deg(\thisrow{angle})),
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
96 y expr = \thisrow{r} * sin(deg(\thisrow{angle})),
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
97 z = z,
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
98 ] {\datapath/x1_log.csv};
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
99 \addlegendentry{Iterates 1}
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
100 \addplot3[iter2,onlyfront] table[
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
101 x expr = \thisrow{r} * cos(deg(\thisrow{angle})),
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
102 y expr = \thisrow{r} * sin(deg(\thisrow{angle})),
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
103 z = z,
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
104 ] {\datapath/x2_log.csv};
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
105 \addlegendentry{Iterates 2}
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
106 \addplot3[iter3,onlyfront] table[
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
107 x expr = \thisrow{r} * cos(deg(\thisrow{angle})),
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
108 y expr = \thisrow{r} * sin(deg(\thisrow{angle})),
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
109 z = z,
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
110 ] {\datapath/x3_log.csv};
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
111 \addlegendentry{Iterates 3}
42
271fba635bce Adjust demonstrations
Tuomo Valkonen <tuomov@iki.fi>
parents: 37
diff changeset
112
271fba635bce Adjust demonstrations
Tuomo Valkonen <tuomov@iki.fi>
parents: 37
diff changeset
113 % Origin
271fba635bce Adjust demonstrations
Tuomo Valkonen <tuomov@iki.fi>
parents: 37
diff changeset
114 \addplot3[origin, onlyfront] table[
271fba635bce Adjust demonstrations
Tuomo Valkonen <tuomov@iki.fi>
parents: 37
diff changeset
115 x expr = \thisrow{r} * cos(deg(\thisrow{angle})),
271fba635bce Adjust demonstrations
Tuomo Valkonen <tuomov@iki.fi>
parents: 37
diff changeset
116 y expr = \thisrow{r} * sin(deg(\thisrow{angle})),
271fba635bce Adjust demonstrations
Tuomo Valkonen <tuomov@iki.fi>
parents: 37
diff changeset
117 z = z,
271fba635bce Adjust demonstrations
Tuomo Valkonen <tuomov@iki.fi>
parents: 37
diff changeset
118 ] {\datapath/origin.csv};
271fba635bce Adjust demonstrations
Tuomo Valkonen <tuomov@iki.fi>
parents: 37
diff changeset
119 \addlegendentry{Origin}
37
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
120 \end{axis}
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
121 \end{tikzpicture}
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
122
d7cd14b8ccc0 Basic cylinder implementation
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
123 \end{document}

mercurial