- 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
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 UTC