W3C home > Mailing lists > Public > public-fx@w3.org > April to June 2012

Re: [css3-transforms] Relation between mathematical description and effect of a transformation

From: Dr. Olaf Hoffmann <Dr.O.Hoffmann@gmx.de>
Date: Sun, 22 Apr 2012 16:06:19 +0100
To: www-style@w3.org, public-fx@w3.org
Message-Id: <201204221706.20581.Dr.O.Hoffmann@gmx.de>
Dirk Schulze:
>
> I agree that we could/should use formula descriptions of the calculation on
> the "Mathematical description" section, just like SVG Transforms or SVG 1.1
> do it. Nevertheless, the calculation is described as prose text in detail
> on "3D Transform Rendering" [1]. Please follow the description about the
> "accumulated 3D transformation matrix". Of course it is not easy to
> understand without knowledge of 3D. I have to rely on the expertise of my
> editor colloquies on this topic as well sometimes. But I don't think that
> it is in the scope of the specification to teach 3D.
>

Yes, these graphics in 
http://www.w3.org/TR/2012/WD-css3-transforms-20120403/#transform-3d-rendering
implicate more or less some central projection.
Interestingly the text talks mainly on matrix multiplication again.
Once you managed to calculate the "accumulated 3D transformation matrix"
you still need a (presumably simple) method/function together with this
matrix to present the result on the screen. A matrix is no graphical 
presentation result. For example 3 you basically multiply the
point (x,y,z) with a 3x3 matrix, you get a result (x',y',z') and you use 
(x',y') for the presentation.
For 4x4 matrices you can multiply a point (x,y,z,p) with a 4x4 matrix 
and you get a result (x',y',z',p') and obviously you will not use only (x',y')
for the presentation, if you want to get something like examples 4-7.

Of course, this multiplication should be noted as well. The more important
issue is, how to come from (x',y',z',p') to the correct position of the point
on the screen (respectively the viewport, viewBox or canvas, however you
might call it - the area you have to continue with 2D),  this has only an X
and Y axis, no Z and P, lets call the point (p_x, p_y).
What you need to write down is a function f (for example 3 a simple 4x2 matrix 
is sufficient, for 4-7 maybe not):
(p_x, p_y) = f(x',y',z',p')
My assumption is, that this is a quite simple function, with most of the not 
completely trivial things you need already stored in p'.
But it is not the task of the reader of such a draft or later recommendation
to guess such a formula ;o)

Olaf
Received on Sunday, 22 April 2012 15:06:50 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Sunday, 22 April 2012 15:06:51 GMT