[metapost] Re: Intersections of NURBs

Larry Siebenmann laurent at math.toronto.edu
Mon Jan 31 04:02:27 CET 2005

L. Finston writes:

 > I've taken another look at this, and there are a couple of things I 
 > don't understand. 

The decomposition of projective linear transformations of the plane
into perspectivities in R^3 is discussed in most texts on synthetic
projective geometry.

The upshot is that an artists' perspectivity in dimension 3 gives
rise to projective a transformation between planes in R^2 that
depends only on the choice of an 'eye point' that lies in R^3 not
on neither plane. The transformation is affine as well as
projective iff and only if the planes are parallel.

Conversely, every projective transformation can be achieved 
by a perspectivity (modulo affine transformation).

 > In your example, it's not clear to me how the points are 
 > projected onto the plane of the floor.

Along straight lines.

 > If they are at focus level or above, a line through the 
 > focus and a given point will not intersect the floor.

It will intersect behind you!!  Recall that

 LS> a projective transformation T of "the plane" is not a 
 > well defined self-mapping of the plane but rather of the
 > projectively extended plane
 >        RP^2 = R^2 \cup {projective line at infinity}

 LF> Nor does this method of projection correspond to
 > traditional linear perspective, in which the direction
 > of view is constant.

Direction of view is never constant inless the eye is at infinite
distance from the scene.  You are confusing directions of objects
as seen by the eye with the one direction of the point that goes to
the center of paper under the perspectivity.  The math does not
bother with the center of paper concept but your programming does.


Laurent S.

PS.  Chatting about de Castaljau for NURBS has
convinced me that the de Casteljau convex hull property
carries over reasonably well to at least those NURBS
that are projective transforms of bezier paths. 
The key fact is (with notations from yesterday):

<< The projection of the *full* convex hull Cvx(A,B,C,D)
does clearly contain the projection of the bezier cubic
bb with control trilateral



I cannot recall whether that is all NURBS. But I do
think it is enough NURBS to make a good application!
Circles, ellipses, and hyperbolae are all exactly
represented.  And all dims and degrees can be treated.

The notion of convex hull in RP^n seems well defined for
objects that miss some hyperplane.  But small objects
such as suitably subdivided control polylaterals easily
satisfy this condition.

Lets hope I am not being too optimistic...

More information about the metapost mailing list