Graphics Reference
In-Depth Information
Given a unit step vector v at a point p , we march to the next point p + L v and
relax it to the intersection. This describes the basic tracing step, but there is one more
complication caused by what are called “terminating” points. These are points where
the intersection curve
(1) meets the initial point on the same curve segment, that is, the segment is a
closed curve,
(2) meets the patch boundary, or
(3) meets an earlier curve segment.
Case (1) is simple and we indicated how case (2) is handled in the discussion of point
relaxation. Points of type case (3) are discovered by checking for intersections of curve
segments in the parameter space of the parameterizations. The points tend to be
“branch” points, namely, places where multiple intersection curve segments meet.
Once an intersection of parameter segments is found one has to find the branch point
and make sure that the adjacent curve segments get sorted correctly.
Here is how one finds a branch point p . We take two endpoints p 1 and p 2 of dis-
tinct crossing curve segments C 1 and C 2 , respectively, as start points and then define
a sequence of points p i . The points p i should alternate between lying on C 1 and C 2 .
See Figure 13.15(a). One continues generating p i until two successive ones are within
a tolerance of e SPT . If there is no convergence, then we do not have a branch point.
Here is how p i+1 is defined, assuming that p i-1 and p i have already been computed.
See Figure 13.15(b). Let q be the orthogonal projection of p i on the tangent line to
the intersection curve segment passing through p i-1 . If n i is a normal vector to surface
S i at p i-1 , then
(
) ∑¥
(
)
=+ -
pp n n
nn
i
i
-
1
1
2
qp
nn
¥
2 .
i
-
1
1
2
¥
1
2
Figure 13.15.
Finding branch points.
Search WWH ::




Custom Search