File: gil_polygon_side.pd

package info (click to toggle)
pd-gil 0.1~20151118-2
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 204 kB
  • ctags: 3
  • sloc: sh: 21; makefile: 5
file content (237 lines) | stat: -rw-r--r-- 6,157 bytes parent folder | download | duplicates (3)
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
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
#N canvas 97 22 1086 756 10;
#X text 21 37 calculates \, if the given line segment is crossed by
the virtual line segment \, determined by the cursor position and a
test point.;
#X text 21 80 needed for the calculations of cursor interaction with
a polygon.;
#X obj 488 369 -;
#X obj 498 339 t b f;
#X obj 438 382 t b f;
#X obj 488 425 *;
#X obj 366 287 unpack f f;
#X obj 423 307 * -1;
#X obj 538 516 t b f;
#X obj 488 563 -;
#X obj 538 439 -;
#X obj 548 409 t b f;
#X obj 611 445 t b f;
#X obj 538 495 *;
#X obj 611 378 unpack f f;
#X obj 611 402 * -1;
#X obj 166 312 -;
#X obj 176 282 t b f;
#X obj 126 375 t b f;
#X obj 166 418 *;
#X obj 69 262 unpack f f;
#X obj 126 332 * -1;
#X obj 196 569 t b f;
#X obj 166 616 -;
#X obj 196 472 -;
#X obj 196 401 t b f;
#X obj 259 498 t b f;
#X obj 196 548 *;
#X obj 259 401 unpack f f;
#X obj 259 455 * -1;
#X obj 378 666 /;
#X obj 388 636 t b f;
#X obj 378 726 >= 0;
#X obj 412 726 <= 1;
#X obj 378 753 &&;
#X obj 732 338 -;
#X obj 742 308 t b f;
#X obj 742 287 unpack f f;
#X obj 742 435 -;
#X obj 752 405 t b f;
#X obj 742 593 unpack f f;
#X obj 742 617 * -1;
#X obj 732 694 /;
#X obj 742 664 t b f;
#X obj 742 518 t b f;
#X obj 732 548 +;
#X obj 742 465 t b f;
#X obj 742 495 *;
#X obj 378 696 t f f f;
#X obj 732 749 >= 0;
#X obj 766 749 <= 1;
#X obj 732 776 &&;
#X obj 732 719 t f f;
#X obj 732 827 &&;
#X obj 732 801 t b f;
#X text 386 212 N=(b_1 -a_1 )*(d_2 -c_2 )-(b_2 -a_2 )*(d_1 -c_1 );
#X text 51 696 s=((c_1 -a_1 )*(d_2 -c_2 )-(c_2 -a_2 )*(d_1 -c_1 ))/N
;
#X text 68 212 (c_1 -a_1 )*(d_2 -c_2 )-(c_2 -a_2 )*(d_1 -c_1 );
#X text 726 213 t=(a_1 -c_1 +s*(b_1 -a_1))/(d_1 -c_1);
#X text 84 864 line segment S_1 is given by the points A (a_1 /a_2)
and B(b_1 /b_2) \, line segment S_2 by C and D.;
#X text 84 894 N = 0 --> S_1 || S_2;
#X text 84 934 x_s = a_1 + s*(b_1 - a_1);
#X text 84 954 y_s = a_2 + s*(b_2 - a_2);
#X text 84 914 the coordinates of the intersection S:;
#X text 84 984 0 <= s <= 1 AND 0 <= t <= 1 --> S lies on AB and CD.
;
#X obj 126 355 + 1000;
#X obj 259 478 + 1000;
#X obj 438 362 + 1000;
#X obj 611 425 + 1000;
#X obj 742 640 + 1000;
#X text 84 1014 D is set to (1000 / 1000) \, what should be always
outside the polygon.;
#X obj 28 156 t l l;
#X obj 28 813 outlet cursor-list;
#X obj 28 125 inlet cursor-list;
#X text 613 117 (c)2011 Marian Weger /part of GIL/;
#X obj 615 42 cnv 15 220 50 empty empty HELP? 20 12 0 14 -261234 -258113
0;
#X text 616 69 for further help: see [gil_example];
#X obj 55 179 s \$0-cursor-list;
#X obj 69 242 r \$0-cursor-list;
#X obj 366 267 r \$0-cursor-list;
#X obj 742 267 r \$0-cursor-list;
#X obj 611 358 r \$0-cursor-list;
#X obj 259 381 r \$0-cursor-list;
#X obj 742 573 r \$0-cursor-list;
#X obj 198 125 inlet a_1;
#X obj 198 146 s \$0-a_1;
#X obj 268 125 inlet a_2;
#X obj 268 146 s \$0-a_2;
#X obj 338 125 inlet b_1;
#X obj 338 146 s \$0-b_1;
#X obj 408 125 inlet b_2;
#X obj 408 146 s \$0-b_2;
#X obj 176 262 r \$0-a_1;
#X obj 196 381 r \$0-a_2;
#X obj 488 299 r \$0-b_1;
#X obj 498 319 r \$0-a_1;
#X obj 538 369 r \$0-b_2;
#X obj 548 389 r \$0-a_2;
#X obj 732 244 r \$0-a_1;
#X obj 752 385 r \$0-a_1;
#X obj 742 365 r \$0-b_1;
#X obj 732 857 outlet crossing;
#X text 21 7 gil_polygon_side <test point position (optional)>;
#X obj 503 41 loadbang;
#X obj 503 61 float \$1;
#X obj 503 81 sel 0;
#X msg 503 104 1000;
#X obj 530 133 s \$0-test;
#X obj 292 455 r \$0-test;
#X obj 215 324 r \$0-test;
#X obj 644 402 r \$0-test;
#X obj 775 617 r \$0-test;
#X obj 471 267 r \$0-test;
#X text 516 943 The cursor C is inside a polygon \, if the line segment
CD to a point outside the polygon is crossing an uneven number of sides
of the polygon. This is always true for all kinds of polygons.;
#X connect 2 0 5 0;
#X connect 3 0 2 0;
#X connect 3 1 2 1;
#X connect 4 0 5 0;
#X connect 4 1 5 1;
#X connect 5 0 9 0;
#X connect 6 1 7 0;
#X connect 7 0 67 0;
#X connect 8 0 9 0;
#X connect 8 1 9 1;
#X connect 9 0 31 0;
#X connect 10 0 13 0;
#X connect 11 0 10 0;
#X connect 11 1 10 1;
#X connect 12 0 13 0;
#X connect 12 1 13 1;
#X connect 13 0 8 0;
#X connect 14 0 15 0;
#X connect 15 0 68 0;
#X connect 16 0 19 0;
#X connect 17 0 16 0;
#X connect 17 1 16 1;
#X connect 18 0 19 0;
#X connect 18 1 19 1;
#X connect 19 0 23 0;
#X connect 20 0 16 0;
#X connect 20 1 21 0;
#X connect 21 0 65 0;
#X connect 22 0 23 0;
#X connect 22 1 23 1;
#X connect 23 0 30 0;
#X connect 24 0 27 0;
#X connect 25 0 24 0;
#X connect 25 1 24 1;
#X connect 26 0 27 0;
#X connect 26 1 27 1;
#X connect 27 0 22 0;
#X connect 28 0 29 0;
#X connect 28 1 24 0;
#X connect 29 0 66 0;
#X connect 30 0 48 0;
#X connect 31 0 30 0;
#X connect 31 1 30 1;
#X connect 32 0 34 0;
#X connect 33 0 34 1;
#X connect 34 0 53 0;
#X connect 35 0 45 0;
#X connect 36 0 35 0;
#X connect 36 1 35 1;
#X connect 37 0 36 0;
#X connect 38 0 46 0;
#X connect 39 0 38 0;
#X connect 39 1 38 1;
#X connect 40 0 41 0;
#X connect 41 0 69 0;
#X connect 42 0 52 0;
#X connect 43 0 42 0;
#X connect 43 1 42 1;
#X connect 44 0 45 0;
#X connect 44 1 45 1;
#X connect 45 0 42 0;
#X connect 46 0 47 0;
#X connect 46 1 47 1;
#X connect 47 0 44 0;
#X connect 48 0 32 0;
#X connect 48 1 33 0;
#X connect 48 2 47 0;
#X connect 49 0 51 0;
#X connect 50 0 51 1;
#X connect 51 0 54 0;
#X connect 52 0 49 0;
#X connect 52 1 50 0;
#X connect 53 0 101 0;
#X connect 54 0 53 0;
#X connect 54 1 53 1;
#X connect 65 0 18 0;
#X connect 66 0 26 0;
#X connect 67 0 4 0;
#X connect 68 0 12 0;
#X connect 69 0 43 0;
#X connect 71 0 72 0;
#X connect 71 1 77 0;
#X connect 73 0 71 0;
#X connect 78 0 20 0;
#X connect 79 0 6 0;
#X connect 80 0 37 0;
#X connect 81 0 14 0;
#X connect 82 0 28 0;
#X connect 83 0 40 0;
#X connect 84 0 85 0;
#X connect 86 0 87 0;
#X connect 88 0 89 0;
#X connect 90 0 91 0;
#X connect 92 0 17 0;
#X connect 93 0 25 0;
#X connect 94 0 2 0;
#X connect 95 0 3 0;
#X connect 96 0 10 0;
#X connect 97 0 11 0;
#X connect 98 0 35 0;
#X connect 99 0 39 0;
#X connect 100 0 38 0;
#X connect 103 0 104 0;
#X connect 104 0 105 0;
#X connect 105 0 106 0;
#X connect 105 1 107 0;
#X connect 106 0 107 0;
#X connect 108 0 66 1;
#X connect 109 0 65 1;
#X connect 110 0 68 1;
#X connect 111 0 69 1;
#X connect 112 0 67 1;