Affine transforms - matrix algebra

Martin Desruisseaux martin.desruisseaux at
Tue Jul 17 13:03:18 PDT 2012

Le 17/07/12 21:14, Pavel Safrata a écrit :
> If we keep the append/prepend terminology and switch the semantics 
> (for reasons explained by Jim), is that a good API? The semantic would 
> then be defined as "append" means the same thing as adding the 
> transform to the end of Node's transform list.

Well, just for the record, the original append/prepend terminology was 
an attempt to be in the spirit of Java2D javadoc, which said for 
Cx.concatenate(Tx): "Transforming a point p by the updated transform Cx' 
is equivalent to first transforming p by Tx and then transforming the 
result by the original transform Cx like this: Cx'(p) = Cx(Tx(p))   -   
note the usage of "first" and "then".

The original terminology was also consistent with the definition of 
ConcatenatedOperation in the ISO-19111 international standard, which is 
defined as a sequence of coordinate operation steps. "prepend" was 
adding a step in the beginning of that sequence, and "append" adding a 
step at the end of that sequence. ISO-19111 is mostly about dealing with 
non-linear transform (map projections) in addition to affine transform. 
Since matrix notation can not be used in such case (while I admit that 
the Cx(Tx(p)) notation still apply), maybe it could be an explanation 
for the difference in interpretations.


More information about the openjfx-dev mailing list