Re: [css3-transforms] neutral element for addition - by animation

Cyril Concolato:


>[CC] Adding 1 in the scale transformation means going from scale(X) to 
scale(X+1), therefore the neutral element is scale(0) which is the identity 
matrix.

scale(0) is not the identity matrix, this is obviously scale(1,1),
because
(0,0) = scale(0,0) * (x,y) and for arbitrary x,y it is of course in most
cases (x, y) <> (0,0); scale(0,0) is no representation of the identity matrix.
but
(x,y) = scale(1,1) * (x,y);  scale(1,1) is a representation of the identity 
matrix.

On the other hand the identity matrix has nothing to do with additive
animation or the neutral element of addition, therefore there is no
need, that it is the same. The identiy matrix is the neutral element
of matrix multiplication, what is a completely different operation.

For the operation of addition of matrices M:  0:=scale(0,0) represents 
a neutral element M = M + 0 = 0 + M, but typically this is not very
important for transformations in SVG or CSS.


The scale function could have been defined in the passed in
such a way, that the identity matrix results from the neutral
element of addtion, this works for example in this way:
scale(a,b) means scaling factors exp(a) and exp(b).
But this would exclude mirroring and is maybe more
difficult to estimate the effect for some authors.
A Taylor expansion approximation by replacing
exp(a) by (a+1) could save the mirroring, but not the
intuitive understanding of scaling.
Therefore there is no simple and intuitive solution to
satisfy all expectations - and too late to change the 
definition anyway.

Olaf  

Received on Friday, 1 June 2012 08:52:30 UTC