W3C home > Mailing lists > Public > www-svg@w3.org > June 2012

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

From: Dr. Olaf Hoffmann <Dr.O.Hoffmann@gmx.de>
Date: Fri, 1 Jun 2012 10:51:54 +0200
To: www-svg@w3.org, public-fx@w3.org
Message-Id: <201206011051.55151.Dr.O.Hoffmann@gmx.de>
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:59:09 GMT

This archive was generated by hypermail 2.3.1 : Friday, 8 March 2013 15:54:51 GMT