# 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

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

This archive was generated by hypermail 2.4.0 : Friday, 25 March 2022 10:08:15 UTC