Page 167 - Geometric Modeling and Algebraic Geometry
P. 167

9 Intersecting Biquadratic Patches  169
                            2. Intersect the plane with the second patch y(r, s) and compute the intersection I.
                            3. Restrict the intersection curve(s) I to the region of interest.
                            4. Intersect the cylinder with the restricted intersection curve(s).
                           The four steps of the algorithm will now be explained in some more detail.


                           Defining the plane, the cylinder and the two bounding planes.

                           The parameter line and its three control points are coplanar. For computing the nor-
                           mal vector n of the plane, we have to evaluate the cross product of two difference
                           vectors of the control points. The plane is given by the zero set of a linear polynomial
                                  π(u 0 )(x, y, z)= e 0 (u 0 )+ n 1 (u 0 ) x + n 2 (u 0 ) y + n 3 (u 0 ) z.  (9.12)

                           By extruding the parameter line in the direction of the normal vector of the plane,
                           we obtain the parametric form of the quadratic cylinder, which intersects the plane
                           orthogonally,
                                                w(u 0 )(p, q)= x(u 0 ,p)+ q · n.         (9.13)
                           The implicitation of the cylinder is slightly more complicated. There exist two pos-
                           sibilities: we can either use Sylvester resultants or the method of comparing coeffi-
                           cients. In both cases we will get an equation of the form

                                    ζ(u 0 )(x, y, z):= a 0 (u 0 )+ a 1 (u 0 ) x + a 2 (u 0 ) y + a 3 (u 0 ) z
                                                  + a 4 (u 0 ) xy + a 5 (u 0 ) xz + a 6 (u 0 ) yz
                                                  + a 7 (u 0 ) x + a 8 (u 0 ) y + a 9 (u 0 ) z 2  =0.  (9.14)
                                                           2
                                                                     2
                           Now we have both the plane and the cylinder in their implicit representation. Note
                           that this is a semi-implicit representation in the sense of [6].
                              If the parameter line degenerates into a straight line, then we choose two planes
                           through it which intersect orthogonally. Note that we use exact rational arithmetic,
                           in order to avoid any robustness problems.
                              Finally, we create the two planes π 1 (x, y, z) and π 2 (x, y, z) which bound the
                           parameter line. For instance, one may choose the two normal planes of the parameter
                           line at its boundary points; this choice is always possible, provided that the curve
                           segment is not too long (which can be enforced by using subdivision). Alternatively
                           one may use the planes spanned by the boundary curves, but these planes may have
                           an additional intersection with the parameter line in the region of interest.


                           Intersection of the plane and the second patch y(r, s).
                           Substituting the second B´ ezier surface y(r, s) into the equation (9.12) of the plane
                           leads to a biquadratic equation in r and s. We can treat it as a quadratic polynomial
                           in r with coefficients depending on s.

                                            π(y(r, s)) = a(s) r + b(s) r + c(s)=0.       (9.15)
                                                            2
   162   163   164   165   166   167   168   169   170   171   172