Affine transforms - matrix algebra
martin.desruisseaux at geomatys.fr
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