## Section 4.3 - Linear transformations

These are of the
form r(1,x,y)=**r(0,**a*x*+b*y*+c**,**a'*x*+b'*y*+c'),
with a,b,c,a',b',c' constants.

Some simple
examples:

**r(0,y,x) **is
a symetry through the diagonal (y=x) line.

**r(0,x/2,y/2)** doubles the size of the image (you will only see the top
left quarter)

**r(0,x+y/2,y-x/2) **rotates (and reduces) the picture a little, 'round the
top-left corner.

I can't really
give you some general formulas for these, I will let you experiment yourself.
Just remember that you may replace x by (x-x_{0}) or y by (y-y_{0}),
or both, to move the "center" of the transformation.

And: r(1,x,y)=**r(0,**a*x*+b*y*+c**,**a*y*-b*x*+d**)**
does always a regular rotation (no other linear distortion, like (x,y+x/2) would
do).

- Non-linear
transformations

They are all
other transformations of the form r(1,x,y)=r(0,f(x,y),g(x,y)), where you put
what you want as f and g.

Note that
convolution is not a simple non-linear transformation, because it accesses the
inter-referencing functions several times.

Here it is even
worse than the linear transformation. Although I can give you some tricks, there
are no general formula to make you get a precise thing. You have to guess :-).

Compute the
distance to a specific point (x_{0};y_{0}) (remember that you
can read the coordinates of a given point clicking on a project window!) with:

sqrt((x-x_{0})^2+(y-y_{0})^2)

And the argument
(angle) to that point (x_{0};y_{0}). Use the internal function
angle: angle(x-x_{0},y-y_{0}). You will get a number between -pi
and +pi.

And (re)read the chapter two
about mathematical operators (Section 2.1)...

Also important is to train a
lot with black and white pictures, without using inter-referencing, to really
'feel' what the mathematical function can do... I have spent months only with
that, while inter-referencing was not yet implemented, and the colour display
did not show more than 256 colours, ie the shades of gray :-)

Index

#### Chapter four:
Inter-referencing

4.1: Having fun with colours

4.2:
Convolutions

4.3: Linear transformations

#### Chapter five:
Using masks

5.1: Selection masks

5.2: Translation
masks

5.3:
Absolute masks