Last update: 2 October 94 All these errors are corrected in the Second Printing, shipped after 1 February 1995. Notation: -------- P = page L = line number n = footnote F = figure E = exercise C = code; column ^ = letter above in italics ~ = letter above in bold = = letter above in Courier [comments in brackets] Substantive: ----------- P36,C1.10: [in lead comment:] iff ==> if After "*or* external diagonal of P" insert: , or |i-j|=2 and i and j are collinear with the middle vertex. P36,L-2: After "P is not a polygon." insert: If j = i-2 in Fig. 1.25a, then the collinearity with i-1 ^ ^ ^ will never be detected, and Diagonalie will return TRUE. ========== ==== Fortunately, InCone in the next section will prevent ====== Diagonalie for being called in this case. ========== P57,A2.1: [Corrections to four lines, as follows:] Case 1: ... Draw diagonal from v to top of reflex chain v+ ==> Draw diagonal from v to second vertex from top of chain ... if reflex chain is empty then advance v. ==> if chain has one element then add v and advance v. Case 2: ... Draw diagonal from v to bottom of reflex chain, ==> Draw diagonal from v to second vertex from bottom of chain, ... if reflex chain is empty then advance v. ==> if chain has one element then add v and advance v. P150,C4.20: for( j = 0; j < 3; ++j ) ==> for( j = 0; j < 2; ++j ) [all in Courier] P238-41: There is a flaw in the Extreme code, pointed out by N.Korneenko. The situation does not have to look like that illustrated in Fig.7.5. If the interval [a,b] captures the lowest vertex as well as the highest, and if c lies between the lowest and b, then the code fails. The code was fixed on 3 Aug 94, and a new version of Section 7.3 is in section.7.3.ps. My apologies! Nonsubstantive: -------------- Pix,L-6: it is a written record of ==> is is only slightly more than Px, L-7: /local/ftp/pub/compgeom ==> pub/compgeom Px,L-3,n2: Delauany ==> Delaunay P12,L-7: Meister ==> Meisters P14,L-5: (n1-2)(n2-2) ==> (n1-2) + (n2-2) P17,L-5: roundoff ==> round-off P36,L-2: (i-1,1) ==> (i-1,i) P41,C1.13: PrintPoint( 'P[i2] ) ==> PrintPoint( P[i2] ) P42,L-1: Triangulate ==> [Courier font] P55,L+17: in Section 2.2 partition ==> in Section 2.2 to partition P60,L+6: a exactly two ==> exactly two P63,L-9: Pyramid ==> pyramid P63,E1: unique line ==> unique direction; one line ==> one direction P64,n8,L-3: 2^16 = 16 ==> \log 2^16 = 16 [i.e., insert Roman "log"] P64,L+8: VanWyk ==> Van Wyk P64,L-12: VanWyk ==> Van Wyk P64,E8: be partitioned ==> be partitioned by diagonals P70,L-5: Exercise 3.2.3[2] ==> Exercise 3.9.2[3] P75,E4: "[easy]" ==> [delete notation "[easy]"] P76,E8: that goes below S ==> that avoids the interior of S P78,L-1: thee ==> the P79,L+4: See Algorithm 3.4 ==> see Algorithm 3.4 P81,F3.5: [delete point (-3,4) from caption list] P83,L-13: p_n must be ==> p_{n-1} must be [i.e., p sub n-1] P86,C3.1: tPoini ==> tPointi P86,C3.2: tstack ==> tStack; P88,C3.5: putchar("\n") ==> putchar('\n') P88,C3.6: newline in string constant: join lines P93,C3.10 Graham( P ) ==> Graham( n , P ) P94,C3.12 Graham( tPolygoni P ) ==> Graham ( int n , tPolygoni P) P89,C3.7: PointAssing ==> PointAssign P95,L-1,n16: Ripple ==> Rippel P100,L1: Let us first assume that each line of tangency ==> By our general-position assumption, each line of tangency P107,L-13: Orthogonal polygons ==> Orthogonal Polygons P111,E4: Onion Peeling ==> Onion peeling P112,n26: Hernandez and Serra ==> Abellanas et al. P115,L+7: The link for circled ==> The link for the circled P115,L+9: Indent as subparagraph, two spaces P117,L+14: faces angles ==> face angles P119,L+21: resulting in a plane graph: "plane" should be in italics. P119,L-1,n9: End with period P120,L-1,n10: End with period P121,E2: Here is "flawed" definition ==> Here is a "flawed" definition P121,E2: bounded a finite set ==> bounded by a finite set P121,E3: bounded a finite set ==> bounded by a finite set P121,E4: each corner off a unit cube ==> each corner of a unit cube P121,E6: "Polyhedral torus." ==> "Polyhedral torus [difficult]." ["[difficult]" in Roman.] P130,L10: 4.2 ==> 4.3 P130,L-1,n15: End with period P132,L-1,n16: End with period P134,C4.5: size of ==> sizeof P143,L-1,n17: End with period P155,L+3: stricly ==> strictly P156,L-1,n18: End with period P157,L-1,n19: End with period P158,L-1,n20: End with period P159: van Wyk ==> Van Wyk P160,L+15: (a) ==> a. P160,L+19: (b) ==> b. P160,E12: liklihood ==> likelihood P164,L-1,n21: End with period P166,L-1,n22: End with period P168,L+15: Image a vast forest ==> Imagine a vast forest P178,E4: Design a set of n points ==> Design a set of n points (n arbitrary) P178,E5: "[easy]" ==> [delete the notation "[easy]"] P178,E5: over all polygons ==> over all Voronoi regions P179,L-7: contruction ==> contructing P186,L-8: f( p) ==> f(p) [close up space] P189,L+1: Kruskals' ==> Kruskal's P202,L+3: [NMAX] ==> x[NMAX] P218,L+11: (a) ==> a. P218,L+13: (b) ==> b. P228,L+7: (a) ==> a. P228,L+10: (b) ==> b. P228,L+12: (c) ==> c. P231,L-8: (a) ==> a. P231,L-6: (b) ==> b. P231,L-4: (c) ==> c. P233,L4: whether a point is in a convex polygon ==> whether a point is in a polygon P236,L-5: afterall ==> after all P248,L7: Box lines around code are too thick P249,L-10: 1/2(a+b) ==> (a+b)/2 P274,F8.3c: Dark edge missing incident to b. P276,L-15: (a) ==> a. P276,L-13: (b) ==> b. P279,F8.5: Postscript shading coarse. P280,L17: relegating ==> relegated P280,L-2: (Guggenheimer: indent right P286,L-1: here: indent right P301,L-1: main ==> main. P311,F8.26: Postscript shading coarse. P325,L-7: Graham, R. ==> Graham, R. L. P325,L-6: Graham, R. ==> Graham, R. L. P326,L-7: Hernandez, M., and Serra, F. ==> Abellanas, M., Garc\'ia, J., Hern\'andez, M., Hurtado, F. and Serra, F. [delete from P326, add as first reference on P320] P331,L-2: Berlin, West Germany: delete P332,L+12: (Manuscript) ==> Inform. Process. Lett. 40, 97-99, ^^^^^^^^^^^^^^^^^^^^^^ ~~ P336,C2: closed set, 115, 109 ==> closed set, 109, 115 [page numbers out of sorted order] P339,C1,L+7: face angle ==> [flush left] face angle P340,343: Index entries for "intersection, of segments" and "segment intersection" should agree: union entries: 27-35, 249-51 P341,C1: Meister ==> Meisters P345,C2: van Wyk ==> Van Wyk