I've attached a patch that is illustrating my problem,
this example shows how rotation is behaving when there are handles like
in 3D modelling softwares,
we see that rotation axis aren't rotating with object.
Le 06/01/2015 21:30, IOhannes m zmölnig a écrit :
On 01/06/2015 09:12 PM, patrice colet wrote:
Hello,
is there a simple way in Gem to rotate an object locally,
or in other words is it possible to rotate an object on z axis, and then
rotate on the new x axis given by z axis rotation?
I believe it would be possible to do that with some matrix magicks but
it looks complicated to me, maybe there are examples somewhere?
i'm sure i misunderstand the question, as the answer i find is rather
simple (all transformations in Gem are always on the local coordinate
system)
|
[rotate 12 0 0 1]
|
[rotate 42 1 0 0 ]
|
or even:
|
[rotateXYZ 0 0 12]
|
[rotateXYZ 42 0 0]
|
fgmsadr
IOhannes
_______________________________________________
[email protected] mailing list
UNSUBSCRIBE and account-management ->
http://lists.puredata.info/listinfo/pd-list
#N canvas 506 89 492 422 10;
#X obj 24 155 s t-mode;
#N canvas 1120 232 705 726 rotateHandles 1;
#X obj 59 6 inlet;
#X obj 68 283 outlet;
#X obj 68 260 color 1 1 1;
#N canvas 579 742 569 301 rotateZ 0;
#X obj 132 9 inlet;
#X obj 256 75 sel 0;
#X obj 260 28 inlet;
#X obj 256 56 spigot 1;
#X obj 308 33 ==;
#X obj 349 74 sel 0;
#X obj 132 68 colorRGB 0 0 1;
#X obj 132 37 separator;
#X obj 132 125 torus 1 32 0.05;
#X obj 132 147 translateXYZ -1 0 0;
#X obj 132 174 cube 0.15 0.15 0.15;
#X msg 253 97 0.05;
#X msg 291 98 0.1;
#X obj 434 27 r gemmouse-lc;
#X connect 0 0 7 0;
#X connect 1 0 11 0;
#X connect 1 1 12 0;
#X connect 2 0 3 0;
#X connect 3 0 1 0;
#X connect 4 0 3 1;
#X connect 5 0 11 0;
#X connect 6 0 8 0;
#X connect 7 0 6 0;
#X connect 8 0 9 0;
#X connect 9 0 10 0;
#X connect 11 0 8 3;
#X connect 12 0 8 3;
#X connect 13 0 4 0;
#X connect 13 0 5 0;
#X restore 115 219 pd rotateZ;
#X obj 59 53 t a a;
#X obj 215 6 inlet;
#X obj 198 136 unpack f f f;
#N canvas 1155 549 641 454 rotateY 0;
#X obj 132 9 inlet;
#X obj 132 118 colorRGB 0 1 0;
#X obj 132 37 separator;
#X obj 132 88 rotateXYZ 90 0 0;
#X obj 132 198 translateXYZ 1 0 0;
#X obj 132 175 torus 1 32 0.05;
#X obj 132 271 cube 0.15 0.15 0.15;
#X obj 256 75 sel 0;
#X obj 260 28 inlet;
#X obj 256 56 spigot 1;
#X obj 308 33 ==;
#X obj 349 74 sel 0;
#X msg 253 97 0.05;
#X msg 291 98 0.1;
#X obj 434 27 r gemmouse-lc;
#X connect 0 0 2 0;
#X connect 1 0 5 0;
#X connect 2 0 3 0;
#X connect 3 0 1 0;
#X connect 4 0 6 0;
#X connect 5 0 4 0;
#X connect 7 0 12 0;
#X connect 7 1 13 0;
#X connect 8 0 9 0;
#X connect 9 0 7 0;
#X connect 10 0 9 1;
#X connect 11 0 12 0;
#X connect 12 0 5 3;
#X connect 13 0 5 3;
#X connect 14 0 10 0;
#X connect 14 0 11 0;
#X restore 123 191 pd rotateY;
#X obj 215 547 pack f f f;
#X obj 329 199 * 57.2958;
#X obj 329 178 atan2;
#X obj 328 219 + 180;
#X obj 328 240 mod 360;
#X obj 424 380 -;
#X obj 436 336 f;
#X obj 453 287 sel 1;
#X obj 385 335 spigot;
#X obj 421 266 t a a;
#X obj 394 379 -;
#X obj 109 123 separator;
#N canvas 1133 527 641 454 rotateX 0;
#X obj 132 9 inlet;
#X obj 132 37 separator;
#X obj 132 198 translateXYZ 1 0 0;
#X obj 132 175 torus 1 32 0.05;
#X obj 132 271 cube 0.15 0.15 0.15;
#X obj 256 75 sel 0;
#X obj 260 28 inlet;
#X obj 256 56 spigot 1;
#X obj 308 33 ==;
#X obj 349 74 sel 0;
#X msg 253 97 0.05;
#X msg 291 98 0.1;
#X obj 132 88 rotateXYZ 0 90 0;
#X obj 132 118 colorRGB 1 0 0;
#X obj 433 27 r gemmouse-lc;
#X connect 0 0 1 0;
#X connect 1 0 12 0;
#X connect 2 0 4 0;
#X connect 3 0 2 0;
#X connect 5 0 10 0;
#X connect 5 1 11 0;
#X connect 6 0 7 0;
#X connect 7 0 5 0;
#X connect 8 0 7 1;
#X connect 9 0 10 0;
#X connect 10 0 3 3;
#X connect 11 0 3 3;
#X connect 12 0 13 0;
#X connect 13 0 3 0;
#X connect 14 0 8 0;
#X connect 14 0 9 0;
#X restore 129 158 pd rotateX;
#X obj 274 499 list;
#X obj 470 158 unpack f f f;
#X obj 511 196 *;
#X obj 515 220 +;
#X obj 528 242 +;
#X obj 546 196 *;
#X obj 576 195 *;
#N canvas 799 705 450 300 demux3 0;
#X obj 89 75 spigot;
#X obj 212 16 inlet;
#X obj 175 79 spigot;
#X obj 276 81 spigot;
#X obj 156 174 outlet;
#X obj 49 26 inlet;
#X obj 219 178 outlet;
#X obj 274 179 outlet;
#X obj 166 123 t b a;
#X obj 228 121 t b a;
#X obj 211 36 unpack f f f;
#X connect 0 0 4 0;
#X connect 1 0 10 0;
#X connect 2 0 8 0;
#X connect 3 0 9 0;
#X connect 5 0 0 0;
#X connect 5 0 2 0;
#X connect 5 0 3 0;
#X connect 8 0 4 0;
#X connect 8 1 6 0;
#X connect 9 0 4 0;
#X connect 9 1 7 0;
#X connect 10 0 0 1;
#X connect 10 1 2 1;
#X connect 10 2 3 1;
#X restore 217 522 pd demux3;
#X obj 393 405 t a b;
#X msg 139 491 0 0 0;
#X obj 113 93 spigot;
#X obj 357 265 spigot;
#X obj 216 567 s transform-rotate;
#X obj 384 223 r t-mode;
#X obj 152 51 r t-mode;
#X obj 152 72 == 1;
#X obj 384 244 == 1;
#X text 148 472 init rotation;
#X obj 564 136 r transform-rotate;
#X obj 563 158 unpack f f f;
#X obj 433 10 gemmouse 2 2;
#X obj 494 89 s gemmouse-lc;
#X obj 421 244 r gemmouse-lc;
#X obj 260 7 r gemmouse-lc;
#X obj 500 52 s gemmouse-mc;
#X obj 148 427 r gemmouse-mc;
#X obj 305 74 sel 1;
#X obj 299 112 list;
#X obj 420 70 - 1;
#X obj 459 73 - 1;
#X connect 0 0 4 0;
#X connect 2 0 1 0;
#X connect 4 0 31 0;
#X connect 4 1 2 0;
#X connect 5 0 6 0;
#X connect 5 0 48 1;
#X connect 6 0 20 1;
#X connect 6 1 7 1;
#X connect 6 2 3 1;
#X connect 8 0 33 0;
#X connect 9 0 11 0;
#X connect 10 0 9 0;
#X connect 11 0 12 0;
#X connect 12 0 32 0;
#X connect 13 0 18 1;
#X connect 14 0 13 0;
#X connect 15 0 14 0;
#X connect 16 0 18 0;
#X connect 17 0 16 1;
#X connect 17 1 15 0;
#X connect 18 0 29 0;
#X connect 19 0 7 0;
#X connect 19 0 3 0;
#X connect 19 0 20 0;
#X connect 21 0 28 1;
#X connect 22 0 23 0;
#X connect 22 1 26 0;
#X connect 22 2 27 0;
#X connect 23 0 24 0;
#X connect 24 0 25 0;
#X connect 25 0 13 1;
#X connect 26 0 24 1;
#X connect 27 0 25 1;
#X connect 28 0 8 0;
#X connect 28 1 8 1;
#X connect 28 2 8 2;
#X connect 29 0 28 0;
#X connect 29 1 21 0;
#X connect 30 0 8 0;
#X connect 31 0 19 0;
#X connect 32 0 14 1;
#X connect 32 0 16 0;
#X connect 34 0 37 0;
#X connect 35 0 36 0;
#X connect 36 0 31 1;
#X connect 37 0 32 1;
#X connect 39 0 40 0;
#X connect 40 0 23 1;
#X connect 40 1 26 1;
#X connect 40 2 27 1;
#X connect 41 0 49 0;
#X connect 41 1 50 0;
#X connect 41 2 42 0;
#X connect 41 3 45 0;
#X connect 43 0 17 0;
#X connect 44 0 47 0;
#X connect 46 0 30 0;
#X connect 47 0 48 0;
#X connect 48 0 22 0;
#X connect 48 0 21 1;
#X connect 49 0 10 0;
#X connect 50 0 10 1;
#X restore 200 142 pd rotateHandles;
#X obj 24 127 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 1
1;
#X obj 49 61 gemwin;
#X obj 233 246 r transform-rotate;
#X obj 200 310 rotateXYZ;
#X obj 233 270 unpack f f f;
#N canvas 301 495 450 345 viewportBuffering 0;
#X obj 81 279 pix_data;
#X obj 81 7 gemmouse;
#X obj 81 240 t b a;
#X obj 224 160 spigot;
#X obj 193 140 t a b;
#X obj 263 139 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 223 179 t b b;
#X obj 212 237 pix_texture;
#X obj 120 101 t a b;
#X obj 136 189 -;
#X obj 81 33 pack;
#X obj 80 55 spigot;
#X obj 81 75 unpack;
#X obj 189 58 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
1;
#X obj 156 26 > 0;
#X obj 155 6 r t-mode;
#X obj 105 307 outlet;
#X obj 213 216 pix_snap 0 0 512 512;
#X obj 193 104 gemhead 20;
#X obj 81 218 / 512;
#X obj 136 216 / 512;
#X msg 137 167 512 \$1;
#X connect 0 1 16 0;
#X connect 1 0 10 0;
#X connect 1 1 10 1;
#X connect 2 0 0 0;
#X connect 2 1 0 2;
#X connect 3 0 6 0;
#X connect 4 0 17 0;
#X connect 4 1 3 0;
#X connect 5 0 3 1;
#X connect 6 0 17 0;
#X connect 6 1 5 0;
#X connect 7 0 0 1;
#X connect 8 0 21 0;
#X connect 8 1 5 0;
#X connect 9 0 20 0;
#X connect 10 0 11 0;
#X connect 11 0 12 0;
#X connect 12 0 19 0;
#X connect 12 1 8 0;
#X connect 14 0 11 1;
#X connect 14 0 13 0;
#X connect 14 0 18 0;
#X connect 15 0 14 0;
#X connect 17 0 7 0;
#X connect 18 0 4 0;
#X connect 19 0 2 0;
#X connect 20 0 0 3;
#X connect 21 0 9 0;
#X restore 309 96 pd viewportBuffering;
#X obj 200 97 gemhead 10;
#X obj 21 193 gemhead 30;
#X obj 41 236 r transform-rotate;
#X obj 21 285 rotateXYZ;
#X obj 41 260 unpack f f f;
#X obj 21 310 square;
#X msg 30 7 destroy;
#X msg 49 31 reset \, dimen 512 512 \, create \, 1;
#X obj 200 217 spigot;
#X obj 239 193 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 1
1;
#X text 262 195 'global/local' axis;
#X connect 1 0 16 0;
#X connect 2 0 0 0;
#X connect 4 0 6 0;
#X connect 6 0 5 1;
#X connect 6 1 5 2;
#X connect 6 2 5 3;
#X connect 7 0 1 1;
#X connect 8 0 1 0;
#X connect 9 0 11 0;
#X connect 10 0 12 0;
#X connect 11 0 13 0;
#X connect 12 0 11 1;
#X connect 12 1 11 2;
#X connect 12 2 11 3;
#X connect 14 0 3 0;
#X connect 15 0 3 0;
#X connect 16 0 5 0;
#X connect 17 0 16 1;
_______________________________________________
[email protected] mailing list
UNSUBSCRIBE and account-management ->
http://lists.puredata.info/listinfo/pd-list