From efed3833da03cda6df11163e2ffccc52072ba099 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Pais?= Date: Fri, 9 Jul 2010 08:32:33 +0000 Subject: svn path=/trunk/abstractions/jmmmp/; revision=13700 --- bezier.pd | 474 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 474 insertions(+) create mode 100644 bezier.pd (limited to 'bezier.pd') diff --git a/bezier.pd b/bezier.pd new file mode 100644 index 0000000..480bcd7 --- /dev/null +++ b/bezier.pd @@ -0,0 +1,474 @@ +#N canvas 0 0 620 725 10; +#X obj 227 20 inlet; +#N canvas 782 318 534 370 inside 0; +#X obj 30 42 inlet; +#X obj 230 252 s \$0-bezier-a; +#X obj 230 182 sel 0; +#N canvas 0 0 450 300 element 0; +#X obj 52 46 struct \$0-bez-c float x float y; +#X restore 16 242 pd element; +#N canvas 113 250 606 425 array 0; +#X obj 58 96 route change click; +#X obj 78 130 unpack p f; +#X obj 58 24 struct \$0-bez-array float x float y array \$0-bez-c-arr +\$0-bez-c float p0x float p0y float p0x. float p0y. float p1x float +p1y float p1x. float p1y. float p2x float p2y float p2x. float p2y. +float p3x float p3y float p3x. float p3y.; +#X obj 31 312 filledpolygon 0 0 1 p1x p1y p1x. p1y p1x. p1y. p1x p1y. +p1x p1y; +#X obj 31 345 filledpolygon 0 0 1 p2x p2y p2x. p2y p2x. p2y. p2x p2y. +p2x p2y; +#X obj 78 150 t b p; +#X obj 78 210 outlet; +#X obj 105 170 s \$0-arrpoint; +#X obj 78 190 speedlim 150; +#X text 40 254 4 control points \, 2 extremos nao saem da caixa; +#X obj 213 160 drawpolygon 0 1 0 0 0 100 100 100 100 0 0 0; +#X obj 31 378 filledpolygon 0 0 1 p3x(-2:98)(-2:98) p3y(-2:98)(-2:98) +p3x. p3y p3x. p3y. p3x p3y. p3x p3y; +#X obj 31 279 filledpolygon 0 0 1 p0x(-2:98)(-2:98) p0y(-2:98)(-2:98) +p0x. p0y p0x. p0y. p0x p0y. p0x p0y; +#X obj 213 130 plot \$0-bez-c-arr 9 2 0 0; +#X connect 0 0 1 0; +#X connect 0 1 1 0; +#X connect 1 0 5 0; +#X connect 2 0 0 0; +#X connect 5 0 8 0; +#X connect 5 1 7 0; +#X connect 8 0 6 0; +#X restore 16 262 pd array; +#N canvas 604 353 469 520 calculate 0; +#X obj 27 42 inlet; +#X obj 27 112 until; +#X obj 27 132 f+ 0; +#X obj 27 92 101; +#X obj 27 172 * 0.01; +#X obj 27 262 expr (-$f2+3*$f3-3*$f4+$f5)*pow($f1 \, 3) + (3*$f2-6*$f3+3*$f4)*pow($f1 +\, 2) + (3*$f3-3*$f2)*$f1 + $f2; +#X obj 46 335 expr (-$f2+3*$f3-3*$f4+$f5)*pow($f1 \, 3) + (3*$f2-6*$f3+3*$f4)*pow($f1 +\, 2) + (3*$f3-3*$f2)*$f1 + $f2; +#X obj 27 242 pack f f f f f; +#X obj 46 315 pack f f f f f; +#X obj 228 378 r \$0-arrpoint; +#X obj 108 408 element \$0-bez-array \$0-bez-c-arr; +#X obj 46 468 set \$0-bez-c y; +#X obj 27 448 set \$0-bez-c x; +#X obj 108 428 t p p; +#X obj 27 152 t f f f; +#X obj 46 192 * 0.01; +#X text 142 11 array com 100 pontos. fazer 200? \; e necessario estar +a escalonar tudo? talvez nao; +#X obj 121 120 get \$0-bez-array p0x; +#X obj 291 120 get \$0-bez-array p0y; +#X obj 321 180 get \$0-bez-array p3y; +#X obj 151 180 get \$0-bez-array p3x; +#X obj 141 160 get \$0-bez-array p2x; +#X obj 311 160 get \$0-bez-array p2y; +#X obj 300 140 get \$0-bez-array p1y; +#X obj 131 140 get \$0-bez-array p1x; +#X obj 27 72 t b b; +#X obj 121 200 + 2; +#X obj 151 200 + 2; +#X obj 321 200 + 2; +#X obj 291 200 + 2; +#X obj 77 32 inlet; +#X obj 121 50 r \$0-arrpoint; +#X obj 121 80 pointer; +#X obj 77 52 t b b; +#X connect 0 0 25 0; +#X connect 1 0 2 0; +#X connect 2 0 14 0; +#X connect 3 0 1 0; +#X connect 4 0 7 0; +#X connect 5 0 12 0; +#X connect 6 0 11 0; +#X connect 7 0 5 0; +#X connect 8 0 6 0; +#X connect 9 0 10 1; +#X connect 10 0 13 0; +#X connect 13 0 12 1; +#X connect 13 1 11 1; +#X connect 14 0 4 0; +#X connect 14 1 15 0; +#X connect 14 2 10 0; +#X connect 15 0 8 0; +#X connect 17 0 26 0; +#X connect 18 0 29 0; +#X connect 19 0 28 0; +#X connect 20 0 27 0; +#X connect 21 0 7 3; +#X connect 22 0 8 3; +#X connect 23 0 8 2; +#X connect 24 0 7 2; +#X connect 25 0 3 0; +#X connect 25 1 2 1; +#X connect 26 0 7 1; +#X connect 27 0 7 4; +#X connect 28 0 8 4; +#X connect 29 0 8 1; +#X connect 30 0 33 0; +#X connect 31 0 32 0; +#X connect 32 0 17 0; +#X connect 32 0 18 0; +#X connect 32 0 23 0; +#X connect 32 0 22 0; +#X connect 32 0 19 0; +#X connect 32 0 24 0; +#X connect 32 0 21 0; +#X connect 32 0 20 0; +#X connect 33 0 25 0; +#X connect 33 1 32 0; +#X restore 16 282 pd calculate; +#X obj 75 122 outlet; +#X text 68 140 escalonar 0-1; +#X obj 289 92 pointer; +#X obj 289 52 symbol \$0-bezier-a; +#X obj 240 162 \$1; +#X obj 240 12 loadbang; +#X obj 289 172 s \$0-arrpoint; +#X obj 230 202 100; +#X msg 230 232 donecanvasdialog 1 -1 2 -10 110 110 -10 \$1 \$1 0 0 +; +#N canvas 0 0 450 300 index 0; +#X obj 65 258 outlet; +#X obj 185 88 r \$0-arrpoint; +#X obj 65 138 get \$0-bez-c y; +#X obj 65 118 element \$0-bez-array \$0-bez-c-arr; +#X obj 80 218 inv; +#X obj 65 238 *; +#X obj 80 158 r \$0-arrpoint; +#X obj 80 178 getsize \$0-bez-array \$0-bez-c-arr; +#X obj 80 198 - 1; +#X obj 65 98 inlet; +#X connect 1 0 3 1; +#X connect 2 0 5 0; +#X connect 3 0 2 0; +#X connect 4 0 5 1; +#X connect 5 0 0 0; +#X connect 6 0 7 0; +#X connect 7 0 8 0; +#X connect 8 0 4 0; +#X connect 9 0 3 0; +#X restore 75 102 pd index; +#N canvas 0 0 450 300 size 0; +#X obj 99 149 inlet; +#X obj 294 149 r \$0-arrpoint; +#X obj 99 169 setsize \$0-bez-array \$0-bez-c-arr; +#X connect 0 0 2 0; +#X connect 1 0 2 1; +#X restore 26 102 pd size; +#X obj 289 152 append \$0-bez-array x y; +#X msg 289 132 0 0; +#N canvas 174 133 668 593 point-befehle 0; +#X obj 228 58 route p0 p1 p2 p3; +#X obj 189 18 inlet; +#X obj 60 166 unpack; +#X obj 150 86 r \$0-arrpoint; +#X obj 150 116 t p p p p; +#X obj 60 236 set \$0-bez-array p0x; +#X obj 60 256 set \$0-bez-array p0y; +#X obj 200 236 set \$0-bez-array p1x; +#X obj 200 256 set \$0-bez-array p1y; +#X obj 340 236 set \$0-bez-array p2x; +#X obj 480 236 set \$0-bez-array p3x; +#X obj 480 256 set \$0-bez-array p3y; +#X obj 340 256 set \$0-bez-array p2y; +#X obj 47 116 pointer; +#X obj 47 362 get \$0-bez-array p0x; +#X obj 57 402 set \$0-bez-array p0x.; +#X obj 77 432 get \$0-bez-array p0y; +#X obj 57 472 set \$0-bez-array p0y.; +#X obj 47 332 t p p p p; +#X obj 47 292 t p p p p; +#X obj 197 332 t p p p p; +#X obj 347 332 t p p p p; +#X obj 496 332 t p p p p; +#X obj 197 362 get \$0-bez-array p1x; +#X obj 207 402 set \$0-bez-array p1x.; +#X obj 227 432 get \$0-bez-array p1y; +#X obj 207 472 set \$0-bez-array p1y.; +#X obj 347 362 get \$0-bez-array p2x; +#X obj 357 402 set \$0-bez-array p2x.; +#X obj 377 432 get \$0-bez-array p2y; +#X obj 357 472 set \$0-bez-array p2y.; +#X obj 496 362 get \$0-bez-array p3x; +#X obj 506 402 set \$0-bez-array p3x.; +#X obj 526 432 get \$0-bez-array p3y; +#X obj 506 472 set \$0-bez-array p3y.; +#X obj 47 382 + 5; +#X obj 77 452 + 5; +#X obj 200 166 unpack; +#X obj 340 166 unpack; +#X obj 480 166 unpack; +#X obj 23 82 outlet; +#X obj 189 38 t b b a; +#X obj 197 382 + 5; +#X obj 227 452 + 5; +#X obj 377 452 + 5; +#X obj 347 382 + 5; +#X obj 496 382 + 5; +#X obj 526 452 + 5; +#X obj 150 216 t p p; +#X obj 291 216 t p p; +#X obj 430 216 t p p; +#X obj 570 216 t p p; +#X obj 303 568 outlet; +#N canvas 118 276 450 300 convert 0; +#X obj 192 68 inlet; +#X obj 164 188 outlet; +#X obj 192 108 - 5; +#X obj 192 128 * 0.01; +#X obj 192 88 + 2; +#X obj 242 68 inlet; +#X obj 242 108 - 5; +#X obj 242 128 * 0.01; +#X obj 242 88 + 2; +#X obj 164 158 pack f f f; +#X obj 99 121 r \$0-dump; +#X connect 0 0 4 0; +#X connect 2 0 3 0; +#X connect 3 0 9 1; +#X connect 4 0 2 0; +#X connect 5 0 8 0; +#X connect 6 0 7 0; +#X connect 7 0 9 2; +#X connect 8 0 6 0; +#X connect 9 0 1 0; +#X connect 10 0 9 0; +#X restore 497 502 pd convert; +#X msg 497 522 p3 \$2 \$3; +#N canvas 118 276 450 300 convert 0; +#X obj 192 68 inlet; +#X obj 164 188 outlet; +#X obj 192 108 - 5; +#X obj 192 128 * 0.01; +#X obj 192 88 + 2; +#X obj 242 68 inlet; +#X obj 242 108 - 5; +#X obj 242 128 * 0.01; +#X obj 242 88 + 2; +#X obj 99 121 r \$0-dump; +#X obj 164 158 pack f f f; +#X connect 0 0 4 0; +#X connect 2 0 3 0; +#X connect 3 0 10 1; +#X connect 4 0 2 0; +#X connect 5 0 8 0; +#X connect 6 0 7 0; +#X connect 7 0 10 2; +#X connect 8 0 6 0; +#X connect 9 0 10 0; +#X connect 10 0 1 0; +#X restore 347 502 pd convert; +#N canvas 118 276 450 300 convert 0; +#X obj 192 68 inlet; +#X obj 164 188 outlet; +#X obj 192 108 - 5; +#X obj 192 128 * 0.01; +#X obj 192 88 + 2; +#X obj 242 68 inlet; +#X obj 242 108 - 5; +#X obj 242 128 * 0.01; +#X obj 242 88 + 2; +#X obj 164 158 pack f f f; +#X obj 99 121 r \$0-dump; +#X connect 0 0 4 0; +#X connect 2 0 3 0; +#X connect 3 0 9 1; +#X connect 4 0 2 0; +#X connect 5 0 8 0; +#X connect 6 0 7 0; +#X connect 7 0 9 2; +#X connect 8 0 6 0; +#X connect 9 0 1 0; +#X connect 10 0 9 0; +#X restore 197 502 pd convert; +#N canvas 118 276 450 300 convert 0; +#X obj 192 68 inlet; +#X obj 164 188 outlet; +#X obj 192 108 - 5; +#X obj 192 128 * 0.01; +#X obj 192 88 + 2; +#X obj 242 68 inlet; +#X obj 242 108 - 5; +#X obj 242 128 * 0.01; +#X obj 242 88 + 2; +#X obj 164 158 pack f f f; +#X obj 99 121 r \$0-dump; +#X connect 0 0 4 0; +#X connect 2 0 3 0; +#X connect 3 0 9 1; +#X connect 4 0 2 0; +#X connect 5 0 8 0; +#X connect 6 0 7 0; +#X connect 7 0 9 2; +#X connect 8 0 6 0; +#X connect 9 0 1 0; +#X connect 10 0 9 0; +#X restore 47 502 pd convert; +#X msg 347 522 p2 \$2 \$3; +#X msg 197 522 p1 \$2 \$3; +#X msg 47 522 p0 \$2 \$3; +#X obj 233 186 * 100; +#X obj 93 186 * 100; +#X obj 373 186 * 100; +#X obj 513 186 * 100; +#X obj 513 206 - 2; +#X obj 373 206 - 2; +#X obj 233 206 - 2; +#X obj 93 206 - 2; +#X obj 60 206 - 2; +#X obj 200 206 - 2; +#X obj 340 206 - 2; +#X obj 480 206 - 2; +#X obj 480 186 * 100; +#X obj 340 186 * 100; +#X obj 200 186 * 100; +#X obj 60 186 * 100; +#X connect 0 0 2 0; +#X connect 0 1 37 0; +#X connect 0 2 38 0; +#X connect 0 3 39 0; +#X connect 1 0 41 0; +#X connect 2 0 76 0; +#X connect 2 1 62 0; +#X connect 3 0 4 0; +#X connect 3 0 13 0; +#X connect 4 0 48 0; +#X connect 4 1 49 0; +#X connect 4 2 50 0; +#X connect 4 3 51 0; +#X connect 13 0 19 0; +#X connect 14 0 35 0; +#X connect 16 0 36 0; +#X connect 18 0 14 0; +#X connect 18 1 15 1; +#X connect 18 2 16 0; +#X connect 18 3 17 1; +#X connect 19 0 18 0; +#X connect 19 1 20 0; +#X connect 19 2 21 0; +#X connect 19 3 22 0; +#X connect 20 0 23 0; +#X connect 20 1 24 1; +#X connect 20 2 25 0; +#X connect 20 3 26 1; +#X connect 21 0 27 0; +#X connect 21 1 28 1; +#X connect 21 2 29 0; +#X connect 21 3 30 1; +#X connect 22 0 31 0; +#X connect 22 1 32 1; +#X connect 22 2 33 0; +#X connect 22 3 34 1; +#X connect 23 0 42 0; +#X connect 25 0 43 0; +#X connect 27 0 45 0; +#X connect 29 0 44 0; +#X connect 31 0 46 0; +#X connect 33 0 47 0; +#X connect 35 0 15 0; +#X connect 35 0 57 0; +#X connect 36 0 17 0; +#X connect 36 0 57 1; +#X connect 37 0 75 0; +#X connect 37 1 61 0; +#X connect 38 0 74 0; +#X connect 38 1 63 0; +#X connect 39 0 73 0; +#X connect 39 1 64 0; +#X connect 41 0 40 0; +#X connect 41 1 13 0; +#X connect 41 2 0 0; +#X connect 42 0 24 0; +#X connect 42 0 56 0; +#X connect 43 0 26 0; +#X connect 43 0 56 1; +#X connect 44 0 30 0; +#X connect 44 0 55 1; +#X connect 45 0 28 0; +#X connect 45 0 55 0; +#X connect 46 0 32 0; +#X connect 46 0 53 0; +#X connect 47 0 34 0; +#X connect 47 0 53 1; +#X connect 48 0 6 1; +#X connect 48 1 5 1; +#X connect 49 0 8 1; +#X connect 49 1 7 1; +#X connect 50 0 12 1; +#X connect 50 1 9 1; +#X connect 51 0 11 1; +#X connect 51 1 10 1; +#X connect 53 0 54 0; +#X connect 54 0 52 0; +#X connect 55 0 58 0; +#X connect 56 0 59 0; +#X connect 57 0 60 0; +#X connect 58 0 52 0; +#X connect 59 0 52 0; +#X connect 60 0 52 0; +#X connect 61 0 67 0; +#X connect 62 0 68 0; +#X connect 63 0 66 0; +#X connect 64 0 65 0; +#X connect 65 0 11 0; +#X connect 66 0 12 0; +#X connect 67 0 8 0; +#X connect 68 0 6 0; +#X connect 69 0 5 0; +#X connect 70 0 7 0; +#X connect 71 0 9 0; +#X connect 72 0 10 0; +#X connect 73 0 72 0; +#X connect 74 0 71 0; +#X connect 75 0 70 0; +#X connect 76 0 69 0; +#X restore 85 262 pd point-befehle; +#X msg 289 72 traverse \$1 \, bang; +#X obj 289 112 t b p; +#X obj 250 32 t b b b; +#X obj 259 62 101; +#X msg 105 312 p0 0 0 \, p1 0.2 0.4 \, p2 0.8 0.6 \, p3 1 1; +#X obj 178 282 outlet; +#X obj 30 62 route size float canvas dump; +#X obj 153 122 s \$0-dump; +#X obj 153 102 0; +#X connect 0 0 26 0; +#X connect 2 0 13 0; +#X connect 2 1 14 0; +#X connect 4 0 5 0; +#X connect 8 0 21 0; +#X connect 9 0 20 0; +#X connect 10 0 2 0; +#X connect 11 0 10 0; +#X connect 11 0 22 0; +#X connect 13 0 14 0; +#X connect 14 0 1 0; +#X connect 15 0 6 0; +#X connect 17 0 12 0; +#X connect 18 0 17 0; +#X connect 19 0 5 1; +#X connect 19 1 25 0; +#X connect 20 0 8 0; +#X connect 21 0 18 0; +#X connect 21 1 17 2; +#X connect 22 0 24 0; +#X connect 22 1 23 0; +#X connect 22 2 9 0; +#X connect 23 0 16 0; +#X connect 24 0 19 0; +#X connect 26 0 16 0; +#X connect 26 1 15 0; +#X connect 26 2 2 0; +#X connect 26 3 28 0; +#X connect 26 4 19 0; +#X connect 28 0 27 0; +#X restore 227 40 pd inside; +#X obj 297 20 namecanvas \$0-bezier-a; +#X obj 227 60 outlet; +#X obj 278 60 outlet; +#X connect 0 0 1 0; +#X connect 1 0 3 0; +#X connect 1 1 4 0; +#X coords -10 110 110 -10 100 100 2 0 0; -- cgit v1.2.1