summaryrefslogtreecommitdiffstats
path: root/src/gui/doc/images/coordinatesystem-transformations.svg
blob: a3bc17af3ef41a263f3eca87ecdd95bcc2b41ccf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="760" height="300"
 viewBox="0 0 760 300"
 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.2" baseProfile="tiny">

<style>
  svg .line-style { stroke: black; fill: none; stroke-width: 2 }
  svg .text-style { font: 14px arial; fill: black }
  svg .mono-text-style { font: 14px monospace; fill: black }
  svg .heading-style { font: 14px arial; fill: black; font-weight: bold }
  svg .shape-style { stroke: none; fill: black }
  svg .dash-style { stroke-dasharray: 4,3; stroke-dashoffset: 0; fill: none;
                    stroke: black }

  svg .window-line-style { stroke: red; fill: none; stroke-width: 2 }
  svg .window-text-style { font: 14px arial; fill: red }
  svg .window-shape-style { stroke: none; fill: red }
  svg .window-dash-style { stroke-dasharray: 4,3; stroke-dashoffset: 0; fill: none;
                           stroke: red }

  svg.dark .line-style { stroke: #f2f2f2; fill: none; stroke-width: 2 }
  svg.dark .text-style { font: 14px arial; fill: #f2f2f2 }
  svg.dark .mono-text-style { font: 14px monospace; fill: #f2f2f2 }
  svg.dark .heading-style { font: 14px arial; fill: #f2f2f2; font-weight: bold }
  svg.dark .shape-style { stroke: none; fill: #f2f2f2 }
  svg.dark .dash-style { stroke-dasharray: 4,3; stroke-dashoffset: 0; fill: none;
                         stroke: #f2f2f2 }
  svg.dark .window-line-style { stroke: yellow; fill: none; stroke-width: 2 }
  svg.dark .window-text-style { font: 14px arial; fill: yellow }
  svg.dark .window-shape-style { stroke: none; fill: yellow }
  svg.dark .window-dash-style { stroke-dasharray: 4,3; stroke-dashoffset: 0; fill: none;
                                stroke: yellow }

  [data-theme="dark"] svg .line-style { stroke: #f2f2f2; fill: none; stroke-width: 2 }
  [data-theme="dark"] svg .text-style { font: 14px arial; fill: #f2f2f2 }
  [data-theme="dark"] svg .mono-text-style { font: 14px monospace; fill: #f2f2f2 }
  [data-theme="dark"] svg .heading-style { font: 14px arial; fill: #f2f2f2; font-weight: bold }
  [data-theme="dark"] svg .shape-style { stroke: none; fill: #f2f2f2 }
  [data-theme="dark"] svg .dash-style { stroke-dasharray: 4,3; stroke-dashoffset: 0; fill: none;
                                        stroke: #f2f2f2 }
  [data-theme="dark"] svg .window-line-style { stroke: yellow; fill: none; stroke-width: 2 }
  [data-theme="dark"] svg .window-text-style { font: 14px arial; fill: yellow }
  [data-theme="dark"] svg .window-shape-style { stroke: none; fill: yellow }
  [data-theme="dark"] svg .window-dash-style { stroke-dasharray: 4,3; stroke-dashoffset: 0; fill: none;
                                               stroke: yellow }

  [data-theme="light"] svg .line-style { stroke: black; fill: none; stroke-width: 2 }
  [data-theme="light"] svg .text-style { font: 14px arial; fill: black }
  [data-theme="light"] svg .mono-text-style { font: 14px monospace; fill: black }
  [data-theme="light"] svg .heading-style { font: 14px arial; fill: black; font-weight: bold }
  [data-theme="light"] svg .shape-style { stroke: none; fill: black }
  [data-theme="light"] svg .dash-style { stroke-dasharray: 4,3; stroke-dashoffset: 0; fill: none;
                                         stroke: black }
  [data-theme="light"] svg .window-line-style { stroke: red; fill: none; stroke-width: 2 }
  [data-theme="light"] svg .window-text-style { font: 14px arial; fill: red }
  [data-theme="light"] svg .window-shape-style { stroke: none; fill: red }
  [data-theme="light"] svg .window-dash-style { stroke-dasharray: 4,3; stroke-dashoffset: 0; fill: none;
                                                stroke: red }
</style>

<text x="50" y="20" fill="black" font-size="14px" font-family="arial"
      font-weight="bold"
      class="heading-style">World coordinates</text>

<g transform="translate(20, 30)">
  <rect x="0" y="0" width="200" height="200" stroke="black" fill="none" stroke-dasharray="4,3" stroke-dashoffset="0"
        class="dash-style" />

  <path d="M5,5 L16,10 L10,16 L5,5" class="shape-style" />
  <polyline points="5,5 20,20" stroke="black" stroke-width="2" fill="none" class="line-style" />
  <text x="25" y="30" fill="black" font-size="14px" font-family="arial"
        class="text-style">(0, 0)</text>

  <path d="M195,195 L184,190 L190,184 L195,195" class="shape-style" />
  <polyline points="195,195 180,180" stroke="black" stroke-width="2" fill="none" class="line-style" />
  <text x="115" y="175" fill="black" font-size="14px" font-family="arial"
        class="text-style">(100, 100)</text>

  <polyline points="-3,-3 3,3" stroke="black" stroke-width="2" class="line-style" />
  <polyline points="-3,3 3,-3" stroke="black" stroke-width="2" class="line-style" />
</g>

<g transform="translate(45,235)">
  <path d="M 0,0 c 0,25 10,35 25,35" stroke="black" stroke-width="2" fill="none" class="line-style" />
  <path d="M 25,30 l 10,5 l -10,5 z" class="shape-style" />
  <text x="40" y="40" fill="black" font-size="14px" font-family="monospace"
        class="mono-text-style">setWindow(-50, -50, 100, 100)</text>
  <path d="M 290,35 c 15,0 25,-10 25,-35" stroke="black" stroke-width="2" fill="none" class="line-style" />
  <path d="M 315,0 l 5,10 l -10,0 z" class="shape-style" />
</g>

<text x="300" y="20" fill="black" font-size="14px" font-family="arial"
      font-weight="bold"
      class="heading-style">"Window" coordinates</text>

<g transform="translate(280, 30)">

  <rect x="0" y="0" width="200" height="200" stroke="red" fill="none" stroke-dasharray="4,3" stroke-dashoffset="0"
        class="window-dash-style" />

  <path d="M5,5 L16,10 L10,16 L5,5" fill="red" class="window-shape-style" />
  <polyline points="5,5 20,20" stroke="red" stroke-width="2" fill="none" class="window-line-style" />
  <text x="25" y="30" fill="red" font-size="14px" font-family="arial"
        class="window-text-style">(-50, -50)</text>

  <path d="M195,195 L184,190 L190,184 L195,195" fill="red" class="window-shape-style" />
  <polyline points="195,195 180,180" stroke="red" stroke-width="2" fill="none" class="window-line-style" />
  <text x="130" y="175" fill="red" font-size="14px" font-family="arial"
        class="window-text-style">(50, 50)</text>

  <polyline points="97,97 103,103" stroke="red" stroke-width="2" class="window-line-style" />
  <polyline points="97,103 103,97" stroke="red" stroke-width="2" class="window-line-style" />
</g>

<g transform="translate(395,235)">
  <path d="M 0,0 c 0,25 10,35 25,35" stroke="black" stroke-width="2" fill="none" class="line-style" />
  <path d="M 25,30 l 10,5 l -10,5 z" class="shape-style" />
  <text x="40" y="40" fill="black" font-size="14px" font-family="monospace"
        class="mono-text-style">setViewport(45, 25, 50, 50)</text>
  <path d="M 270,35 c 15,0 25,-10 25,-35" stroke="black" stroke-width="2" fill="none" class="line-style" />
  <path d="M 295,0 l 5,10 l -10,0 z" class="shape-style" />
</g>

<text x="570" y="20" fill="black" font-size="14px" font-family="arial"
      font-weight="bold"
      class="heading-style">Device coordinates</text>

<g transform="translate(540, 30)">

  <rect x="0" y="0" width="200" height="200" stroke="black" stroke-width="2" fill="none" class="line-style" />

  <path d="M5,5 L16,10 L10,16 L5,5" class="shape-style" />
  <polyline points="5,5 20,20" stroke="black" stroke-width="2" fill="none" class="line-style" />
  <text x="25" y="30" fill="black" font-size="14px" font-family="arial"
        class="text-style">(0, 0)</text>

  <path d="M195,195 L184,190 L190,184 L195,195" class="shape-style" />
  <polyline points="195,195 180,180" stroke="black" stroke-width="2" fill="none" class="line-style" />
  <text x="115" y="175" fill="black" font-size="14px" font-family="arial"
        class="text-style">(100, 100)</text>

  <rect x="90" y="50" width="100" height="100" stroke="red" fill="none" stroke-dasharray="4,3" stroke-dashoffset="0"
        class="window-dash-style" />
  <polyline points="137,97 143,103" stroke="red" stroke-width="2" class="window-line-style" />
  <polyline points="137,103 143,97" stroke="red" stroke-width="2" class="window-line-style" />
</g>

</svg>