View Full Version : cartesian rotation
8th February 2002, 09:07
Woo! occasional lurker, first post... :D
Any help would be appreciated with this. I'm trying to do rotation in the x,y co-ordinate system in a DM, and as far as I can tell, this should work; but it doesn't.:(
rot = rot+.01;
Could someone tell me why this doesn't work, and maybe point me in the right direction?
8th February 2002, 10:33
This is'nt as hard if you try a bit.
First thing, to rotate you need a mix of x and y for every position. The mix should be managed by using sin and cos of an increasing var.
Second, i had troubles with direct assigning of x and y. Assign both to some other var's and work with them when you reassign the mix to x and y. I postet up 2 Prestets to "New Demiurgy Fractals" (http://forums.winamp.com/showthread.php?s=&threadid=74714) look at the DM in KaleidoWarpFlash2.avs and you'll find what you search.
8th February 2002, 16:11
Hmm... got it working, thanks man. :)
The distortion when working with x,y driectly must come from changing the value for x they your using in defining y.
8th February 2002, 16:53
I stuck the rotation into the preset I want it in in the end, and I noticed something that I didn't in my simple test preset. There is distortion that doesn't seem to be there when the polar system is used. Would coverting polar and back again fix this, and if so, please refer the original post. (it's what I was trying to do anyway)
8th February 2002, 22:27
general rotation works like this (in matrix form):
[cos -sin] [ x ] = [ x' ]
[sin cos] [ y ] = [ y' ]
x' = x*cos - y*sin;
y' = x*sin + y*cos;
You should always assign the result to different values, else you'll be using the rotated x-coordinate to calculate the rotated y.
(of course cos/sin means the sine/cosine of the angle to rotate)
9th February 2002, 03:19
Yeah, that's pretty much what I distilled from Magic.X's preset. The only problem is that there is distortion unless the window is square. There dosen't seem to be any such distortion when using polar. I'd use polar except I'd have a helluva time trying to scroll in it.:)
Maybe a better question would be 'Am I trying to convert to polar correctly?'.
9th February 2002, 03:38
Just use two DM's, one for rotation in polar and a second for x & y movement in rect.
9th February 2002, 18:00
Well, the thing is, that's slow. Just enter this into your rect. coor. DM:
11th February 2002, 02:05
Yeah, that's what I'm using now, but like I said earlier, that gets distorted unless the window is square. I'd even go so far as the use 2 DMs, except the the one is scrolling around. If I use 2 DMs the edges don't match.
Ah well, I guess it'll have to do.
For all that helped, I thought I'd share my finished product. (thinking of puting out a pack, this would by my most complicated one (except for a remix of it :) ))
11th February 2002, 04:18
You can get rid of the edges by making your render is smaller in the first place and dividing d by sqrt(2). This would make your end product kind of blocky, but it would get rid of the edges.
12th February 2002, 05:17
Well, it does work like that perfectly, but I think it needs the detail. Thanks anyway.
vBulletin® v3.8.6, Copyright ©2000-2013, Jelsoft Enterprises Ltd.