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.