Draft.
Lens transformation does not preserve parallel lines which cross front planes.
However, if to restrict scene by small neighbourhood of an arbitrary point x0, y0 =/= 0, and z0,
then linear members of Taylor expansion of Lens transformation will produce
linear transformation which will preserve any parallel lines.
Here we take axis y as normal to front planes. For 0<y<<y0,
R=(X,Y) ~ (x+x0,z+z0)(1-y/y0)
Omitting constant members, we have:
R = const * (x+by,z+gy), or
R~Lr, (LL)
where
L ~ 1 b 0
0 g 1
Lr is a multiplication of L by vector-column r= || x, ||
|| y ||,
b=-x0/y0
g=-z0/y0
Well known such transformation is Isometry.
In Isometry, angles between x, y, and z axes are 120 degrees on screen.
To reach this effect, we can first rotate axes counterclockwise 45 degrees, and
then apply linear lens transformation LL.
If axes x',y' rotated counterclockwise by angle alpha, coordinates will be rotated clockwise:
x = cx' + sy'
y = -sx' + cy'
z = z'
s=sin(alpha)
or r=Tr'. (T)
In Isometry, alpha=45 degrees, => s=c=sqrt(2)/2.
To complete desired effect, we also will choose z0 to achive
angle 120 degrees between y and z on screen.
Substituting (T) into (LL) we obtain:
R=(axx'+ayy',bzz'+bxx'+byy')
For Isometry:
ax=q=sqrt(3)/2
ay=-q
bx=1/2
by=1/2
bz=1
Previous Draft
Copyright (C) 2007-2009 Konstantin V. Kirillov.