From: rusin@vesuvius.math.niu.edu (Dave Rusin) Newsgroups: sci.math.num-analysis Subject: Re: How many Surface Normals ? Date: 5 Sep 1996 22:17:47 GMT In article <322AACA9.41C6@icrf.icnet.uk>, islam wrote: >Given an implicit Surface F and its normal N > > F(x,y,z) = 0 > N = i(dF/dx) + j(dF/dy) + k(dF/dz) > >By examining F and/or N is there a straight forward/standard >method to find the maximum number of Normals that may pass >through a general point ? For examples for a plane the answer >is 1, for a circle 2, for a conic 4 and for a Quadric up to >6. If I understand you correctly, you are given the above surface and a point P0=(x0,y0,z0), and you want to know how many points there are P1=(x1, y1, z1) which lie on the surface, such that the normal to the surface at P1 passes through P0. This normal is the set of points P1 + t*(F_x, F_y, F_z) where t ranges over the real numbers and the partials are evaluated at P1. (I'm assuming the surface is nonsingular so that this gradient is a nonzero vector and the normal line is well-defined.) Thus your question asks for the number of simultaneous solutions to the equations x0 = x1 + t F_x( x1, y1, z1) y0 = y1 + t F_y( x1, y1, z1) z0 = z1 + t F_z( x1, y1, z1) F(x1, y1, z1) = 0 where the variables are x1, y1, z1, and t. You should expect in general that four equations in four unknowns will have a finite number of solutions, although of course there will be degenerate cases. If F is a polynomial, you have your choice of several approaches. First of all, the equations may be thought of as describing the intersection of four (3-dimensional) hypersurfaces in 4-space, which makes this question the province of algebraic geometry. Indeed, one can easily eliminate t from these equations and get 3 polynomial equations to solve, i.e., 3 surfaces in R^3 to intersect (the last of them being the original surface, the other two dependent on P0). You might enjoy using computer graphics to look for the solutions in specific cases. There is a very general theorem (Bezout's theorem) which counts the number of points in the intersection of the surfaces. Subject to certain restrictions, it suggests the number of points of intersection should never be more than (deg F)^3 (I think). You can also compute the points of intersection explicitly. Just as t is easily eliminated, one may eliminate x1 from the three equations, leaving two equations in y1 and z1 (that is, you need to intersect two curves in the plane). You can use the theory of resultants for this, as well as to eliminate y1 from the remaining two equations to get a polynomial (of high degree!) in z1 to be solved. Alternatively, one may use Groebner basis techniques to find three equations equivalent to the given three but using respectively 1, 2, and all 3 variables; solving these in turn allows one to compute the unknowns x1, y1, and z1. Most computer algebra packages will allow you to perform these computations symbolically, so you can investigate the dependence on P0. (If you have a specific P0 in mind, it may well be quicker to calculate numerically the points P1 by using Newton's method, say, since elimination techniques are very time-consuming.) I will confess that none of the comments in the last three paragraphs makes use of the specific nature of the equations to be solved. It may well be that there is a built-in degeneracy or something coming from the construction of the equations from the obviously dependent polynomials F, F_x, F_y, and F_z. dave