- From: Dr. Olaf Hoffmann <Dr.O.Hoffmann@gmx.de>
- Date: Thu, 26 Mar 2009 12:02:47 +0100
- To: www-style@w3.org

> On 26/03/2009, at 6:45 AM, Dean Jackson wrote: > > Olaf, > > > > On 26/03/2009, at 12:49 AM, Dr. Olaf Hoffmann wrote: > >> I think, it is not a good idea, that a matrix is decomposed in an > >> (arbitrary) > >> set of other transformations for animation purposes, because: > > [snip your points] > > >> To resume, I suggest to skip the decomposition idea completely. This > >> avoids mathematical problems and paternalism of authors. > > > > We strongly disagree. We came to this approach for a few reasons: > > [snip my reply] > > If you wanted more proof here's an example from the apple engineer who > implemented the decomposition: > > Imagine animating from [0.707 -0.707 0.707 0.707 0 0] to [0.707 0.707 > -0.707 0.707 0 0], which is an animation from 45 degrees to -45 > degrees. Without decomposition at 50% you have [0.707 0 0 0.707 0 0], > which is a rotation of 0 degrees (this is correct) but with a scale of > 0.707 (definitely incorrect)? You'd see a box rotate and shrink, then > continue rotating and grow again. This would be even worse animating > from 0 to 180 degrees, where the box would shrink to nothing at the > 50% mark. > > Dean I think, the main points are, that it can cause mathematical problems and that there are applications for the matrix animation without decomposition as well, currently not accessible at all. Authors should at least have the choice, what happens and of course the mathematical problems with the possibly missing inverse have to be avoided somehow within the decomposition approach. In general I do not dislike the idea of decomposition as an additional feature to the simple interpolation between two matrices, then authors have even more the choice, what they really want. However in case this is not possible, authors have already the possibility to provide a complete set of transformations, then they should have the possibility too to interpolate between matrices. I think, no author will compute from a set of transformations a matrix, write it down and expect, that the original set is reconstructed by the viewer for the animation - and the suggested method will not manage this anyway. If the author writes down this set, this is transparent and understandable for him/her and this is, what will happen in most cases anyway. Error management for illformed combinations is another problem, but this is not very interesting for authors, because typically they do not want to publish errors intentionally, therefore a visible indication for a stupid notation will be much more useful for authors as a composition/decomposition mechanism to hide such errors - for example no animation at all, if initial and final set do not fit together. This will trigger authors to fix errors instead of assuming, that everything works. That matrix animation is not possible currently in SVG without some complicated tricks is annoying enough. And I tested the animation behaviour for the matrix case in SVG and it works as expected - at least for me. Simple possible applications are for example animated IFS (iterated function systems). And I think, there will be no surprises for 3D (4x4 matrices) as well for such application - but of course it looks quite different than such a decompostion, that is the reason, why it is a quite different interesting feature. In the example above you automatically think about rotation - why? There is nothing incorrect or looking strange if you do not have those other transformations or concepts in mind. If you need a rotation, you can use rotate etc, not matrix, obviously it is inefficient to simulate a rotation with something like a values animation with a lot of matrices. In the same way it is inefficient to simulate a matrix animation with a huge number of values animations of a set of other transformation, what is possible, but not very useful if one can specify a matrix directly. If this is decomposed, authors need a large set of explicitly noted interpolation values to express, what they really want, resulting in something like 10 to 20 values per second animation. Olaf

Received on Thursday, 26 March 2009 11:07:02 UTC