Re: button-hole problem

Larry Siebenmann <[email protected]> Sat, 23 Apr 2005 23:21:25 -0400
Newsgroups gmane.comp.tex.metafont
Message-ID <[email protected]>

Hi Laurence F.

 Me> For example, if the
 > projection point is on the target plane, which happens to be
 > disjoint from the circle, then the projected circle is the
 > EMPTY SET.

 You> Wouldn't it be a point, namely the projection point

You are quite right, I boobed; as Peter Vanroose further
explained, a cone on an empty set is not empty but the cone
point.  Unfortunately, programmers usually have to
pay attention to degenerate cases -- they are like
accidents waiting to happen.

 > occlusion of two polygons

??? whazzat?

I mentioned radial projection of objects in R^3 onto
the spherical retina of an imaginary eye. You answered:

 > This is interesting, but I think it may not be of
 > practical importance for 3DLDF.

You can ignore it.  But it is helpful to consider
because the sphere (eye) with opposite points
identified is a model of projective 2-space RP^2.  One
in which no particular line at infinity is has privilege
and in which the compactness of RP^2 is obvious. It is
natural since God gave your users spherical eyes and a
preception of projective geometry through them.

 > it might be useful to just store the center of an
 > object and a transformation matrix.

I favor 3-dimensional scenes which one can journey through
with a computer. 

 > What I do is the following:  A `Focus' contains a
 > `Point' representing the position of the "camera" in
 > space 
 > ....
 > `Focus::position'

This would be the center C of my eye.

 > and another representing the direction of view.
 > ....
 > `Focus::direction'

This is direction CP, where P is the center of the pupil
of my eye.

 > The "up" direction is determined somehow, I don't
 > remember how, 

It is determined by gravity via the inner ear, I
believe.

 > and can be modified by using a `real'
 > value for an angle of rotation.

OK. But, my eye tends to resist that modification.  
Stand in front of a mirror and tilt your 
hear to one side.  Do not your eyes not stay upright?
Of course this mechanism is switched off sometimes
for astronauts and athletes.

 > These values are used to determine a transformation
 > which would place the position point and the
 > direction point on the z-axis and the plane of
 > projection into the x-y plane.  This transformation
 > is then applied to all of the objects in the space
 > before applying the perspective transformation.

Let me try to understand using a model eye or camera.

Are you, in other words, introducing a new oriented isometric
coordinate system on 3-space: origin at the center C
of the eye, the z-axis running from that center out
through the center of the 'pupil' P? The y-axis
'vertical', and the x-axis 'horizontal'.

The retina or film F  can be thought of as the
translate of the xy plane distance m in the positive
z-direction. This m is zoom magnification if we think of
the eye as a *simplified* camera.

Then a "view" or "photo" of 3-space is obtained by
radial projection through C onto F. 

 > Objects that can't be projected are culled in
 > `Picture::output()'

The projection can be restricted to map only 
objects in the half-space of positive z, onto the 
film F. The film can be cut down to a finite part 
F0 of F, presumably a neighborhood of the origin.  
The cut-down film then sees just scenery in the 
positive cone on F0 with center C. Occultation is a 
major problem I won't explain. Also color 
luminosity texture shadow, reflection, transparency 
-- gasp. 

If one is to be able to tour through 3D scenes, a
model of this complexity seems necessary.

All this is guesswork.  Is is consistent with *some*
3D graphics system?

Cheers

Laurent S.

PS. As in photography, the center C can move far 
from the scenery of interest, though F0 will stay 
relatively close.  The projection onto F 
then becomes parallel to the z-axis.  But it seems 
advisable allow freedom for C to tour
in all 3-space.