ID:1525849
 
Code #1:
var/matrix/M = new
M.Scale(1/8)
M.Translate(-100,0)
M.Turn(90)
animate(P, transform = M, alpha = 0, time = 20)

Image #1


Code #2:
var/matrix/M = new
M.Scale(1/8)
M.Translate(-100,0)
//Removed the turn
animate(P, transform = M, alpha = 0, time = 20)

Image #2

Problem description:

So, I am trying to understand how animate functions and reading up on matrices, but I am still utterly confused.

At first, I thought: "Turn() is actually turning how Translate is working." If this were true why would the first code be actually rotating the icon? It is turning the direction of movement and rotating the object. I guess what I am looking for is an explanation for this... My brain needs help.
Turn() rotates the icon of anything M is applied to, so if you made an icon with different directional states - you'd be able to see that it doesn't actually turn the direction during animate() using the code you supplied, unless you actually told it to change direction using another proc().

It's like using the rotate feature in the icon editor.
I know that it isn't actually changing direction. Let me try to explain myself more clearly.

In code #2, Translate is moving the object -100px to the left.(X coords) This is exactly what I thought the code would do.

In code#1, I believed that using Turn() would spin the object 90 degrees, which it did ,but it seems that it turned the object's way of reading x-coords and y-coords as well. Now the object isn't getting smaller in the same direction of motion.(Which by observation happens to be a 90 degree change) So what I am basically asking is does Turn() change x and y values?