Thank you Antoine for help!
It works, but only once. If I feed the results from [expr] into [v x] and [v y], it starts to act like in my original post. Maybe I completely missed the purpose of [value] object. My idea was to set only the initial values and then advance with 90 degrees of rotation from updated x and y values with every bang the [expr] object receives. 



On Sunday, December 14, 2025 at 04:53:27 PM GMT+1, Antoine Rousseau <antoine@metalu.net> wrote:


works with [value]s too:

#N canvas 145 73 450 258 12;
#X obj 26 132 expr (x*cos(theta))-(y*sin(theta)) \; (x*sin(theta))+(y*cos(theta));
#X msg 26 24 1 0 1.5708;
#X obj 26 49 t b a;
#X obj 58 74 unpack f f f;
#X obj 139 98 v theta;
#X obj 98 100 v y;
#X obj 58 98 v x;
#X floatatom 26 172 9 0 0 0 - - - 0;
#X floatatom 268 171 10 0 0 0 - - - 0;
#X connect 0 0 7 0;
#X connect 0 1 8 0;
#X connect 1 0 2 0;
#X connect 2 0 0 0;
#X connect 2 1 3 0;
#X connect 3 0 6 0;
#X connect 3 1 5 0;
#X connect 3 2 4 0;

Le dim. 14 déc. 2025 à 15:07, Claude Heiland-Allen <claude@mathr.co.uk> a écrit :
could it be some confusion between x, y from [value x]. [value y] and
the x and y used for input/last output (e.g. in fexpr~)?

does it work if you rename x, y to a, b?

---
pd-list@lists.iem.at - the Pure Data mailinglist
https://lists.iem.at/hyperkitty/list/pd-list@lists.iem.at/message/7STICENY5LTMWBRDWWSFJU4E5B3ZZ2R2/

To unsubscribe send an email to pd-list-leave@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> https://lists.iem.at/