help-3dldf
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[help-3dldf] Re: button-hole problem


From: Laurence Finston
Subject: [help-3dldf] Re: button-hole problem
Date: Fri, 22 Apr 2005 23:07:53 +0200
User-agent: IMHO/0.98.3+G (Webmail for Roxen)

From: Larry Siebenmann <address@hidden> 

>>> [is there] an algebraic formula for the curve on a plane
>>> of projection representing the perspective projection of a
>>> circle?

> I answered "off-the-cuff":
> 
>  > On the image plane it is a conic section, ie an ellipse, a
>  > parabola, or hyperbola.
> 
> If you almost understood this answer, read on; otherwise stop
> right here.

After I posted my question, I was somewhat mortified when I remembered
something about circles in perspective always being ellipses.  When I thought
about it some more, I wasn't sure whether this was perhaps only true of
circles in planes parallel to one of the main planes (x-y, x-z, or z-y).  I
have a couple of plastic templates of perspective ellipses---they are still
available in stores, but are probably destined to go the way of the slide
rule.  I believe that a circle that is coplanar with the ray of vision and
perpendicular to the plane of projection must be a straight line.  Perhaps
others are really all elliptical; I wish I knew how to figure this out.  At
any rate, I regretted not having asked about conic sections in the first
place.  I'd also be interested in knowing about the effect of non-affine
transformations on them other than the perspective transformation, if I
haven't exhausted your patience already.  I suspect this is probably something
that I won't be able to understand, though.

> 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.

Wouldn't it be a point, namely the projection point, or what I call the focus?
 And wouldn't the projections of all other objects in the 3D space be that
same point?  In GNU 3DLDF, this would imply that the `distance' element of the
`Focus' object would be 0, which would probably fail anyway, probably because
of a division by 0 somewhere.  

> 
> However, from an answer that is generically true one can
> usually (with some work)  deduce the general answer -- which
> is often rather complicated and correspondingly OBSCURE.  For
> example, the generic (and stable) affine classification of
> complete bezier cubic loci (forgetting parameters) is just
> twofold: doublepoint versus inflexion pair. But the full
> classification is a bit of a mess. See the MP list for
> details

I'm working on non-arbitrary geometric figures because they're easier 
than Bezier curves.  Consider the task of dividing a polyhedron using a plane.
 From a mathematician's point of view, this is trivial, but programming it
will certainly take me quite a few hours.  In fact, I have already spent many
hours working on the "preliminaries", which are features in their own right. 
Once it works, it should be possible to extend it to dividing a polyhedron by
another polyhedron.  I'm looking forward to making a sequence of pictures with
two polyhedra passing through each other.  However, I still have a couple of
unsolved problems involving the occlusion of two polygons, so I'll have to
solve them first.

I have also given quite a bit of thought to representing what I am calling
"ellipse slices" and "circle slices".  These are the figures resulting from
dividing ellipses and circles by straight lines and/or other ellipses 
and circles, once or multiple times.  Someone has been kind enough to explain
to me how one can find the intersections of two ellipses algebraically, but
unfortunately I don't have the mathematical background to understand the
explanation.  This is by way of explaining why I'm not in such a hurry to get
stuck into Bezier curves.

> 
> Incidentally, the parabolic case above is not generic or
> stable *unless* one considers movies, or one states that the
> union
> 
> (elliptic case) \cup (parabolic case) \cup (hyperbolic) case)
> 
> is stable and generic.
> 

Would it be possible to express these ideas in words of one syllable?

> I meant the intersection, with that sphere, of a cone having
> center the eye's center, and with base an ellipse in a well
> chosen plane far from the eye.
> 

This is interesting, but I think it may not be of practical importance for
3DLDF.  So far, I've been satisifed with projection onto a plane.  Should I be
concerned with the intersection of spheres and cones and the center of the
eye?  This is a genuine question.

>  ----------------
> 
> As for algebraic formulae, I assume you are happy with
> pointwise execution 

I'm not sure.  I've been thinking about this lately.  In some ways, it's
useful to have the individual points available.  In other ways, it might be
useful to just store the center of an object and a transformation matrix.  I
haven't made a decision about this yet.  If you have an opinion, I'd be quite
interested to hear it.

> so I suggest you just compose two
> perspectivities in R^3:

> 
> (1) the given perspsectivity projecting from the given circle
> to the target plane in 3-space.
> 
> (2) the perspectivity with center the eye of the (imaginary)
> television camera, that maps from the mentioned target
> plane to the computer screen.
> 
> This lets you move any number of points from your original
> circle to the computer screen in such a way that you "see"
> on the screen the given projection of the circle.

What I do is the following:  A `Focus' contains a `Point' representing the
position of the "camera" in space and another representing the direction of
view.  The "up" direction is determined somehow, I don't remember how, and can
be modified by using a `real' value for an angle of rotation.  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.


> 
> Once you have 5 points of the screen image, you can (if you
> wish) get all other points on screen by programming
> 2-dimensional Pascal's theorem in MP.

I'll have to look up Pascal's theorem.  I'm afraid my reach exceeds my grasp
when it comes to math.

Thank you; I appreciate your help very much.

Laurence




reply via email to

[Prev in Thread] Current Thread [Next in Thread]