Errata to "Computational Geometry in C"
Second Edition (1998)
Second Printing (identified as "Reprinted" on ISBN page)
Last update: 14 January 2003
Notation:
--------
P = page; L = line number; n = footnote
S = Section; F = Figure; T = Table; A = Algorithm; E = Exercise; C = Code
^ = indicates changes in line above
[comments in brackets]
Substantive:
------------
P109, E10, replace with:
Define the *angle deficit* at a vertex to be the difference between
2pi and the sum of the face angles incident to that vertex.
Compute the total sum of the angle deficits over all the
vertices of a few polyhedra (of genus 0) and formulate a conjecture.
[The original asked for the sum of the face angles, which is
not as interesting a quantity; I meant to ask for the sum of
the deficits instead.]
[(Thanks to Dessislava Michalova and Katina Tiggas.)]
P58, L-1:
"whereas segment endpoints need only lie on dP" should be
"whereas segment endpoints may be at any point of P."
[(Thanks to Saurabh Sethia.)]
P200, L2:
"First an intersection point x between Li and any line of A{i-1}
is found in constant time."
Change to:
"First one edge of the new arrangement is found incident to
an intersection point x between Li and any line of A{i-1};
this edge is easily found in linear time."
[(Thanks to Saurabh Sethia.)]
P221, Eq. 7.2: There is a minus sign missing on the RHS:
t = -[ ... ] (7.2)
(The code on P222 is correct.)
[Thanks to laynejg .]
Nonsubstantive:
--------------
Px, L+3 of "Topics Covered":
"These topics from the chapters of this book." should be
"These topics form the chapters of this book."
^^^^
[(Thanks to Saurabh Sethia.)]
Pxiii:
Add these people to the Acknowledgements:
Brad Barber
Jeff Glickman
Thom Goodsell
Steve Oudot
Don Power
Christian Schmidt
Vadim Shapiro
Dan Sunday
Lang Withers
P41, T1.1:
"11 (7,10)" should be
"11 (7,17)"
^
[(Thanks to Stuart Abercrombie, David Yuen, David Tsang.)]
P63, L-8 (last sentence of item 4):
"Exercise 3.2.3[2]" should be "Exercise 3.9.3[2]"
^ ^
P68, E8:
"Shortest path below" should be
"Shortest path above or below".
^^^^^^^^
"avoids the interior of S" should be
"avoids the interior of the convex hull of S"
^^^^^^^^^^^^^^^^^^
[(Thanks to Joe Mitchell.)]
P106, T4.2, L3-4: The Schla:fli symbols in the {p,v} column for
the last two rows should be interchanged to:
Dodecahedron {5,3}
Icosahedron {3,5}
[(Thanks to Thom Goodsell and Dan Sunday.)]
P151, L2-3:
Take a zero-dimensional cube (a point) and ...
^^^^
producing a one-dimensional cube (a segment).
^^^
[I.e., change "one-" and "two-" to "zero-" and "one-" respectively.
(Thanks to Thom Goodsell)]
P190, L1:
"multications" should be "multiplications"
P195, last sentence of 2nd para. of proof, change + to - as follows:
...yields F = 1 + n^2 - n(n - 1)/2 = ...
[(Thanks to Christian Schmidt.)]
P226, last sentence:
"before turing to" should be
^^^^^^
"before turning to"
[Thanks to Kirk Bailey.]
P236, C7.9: Second if statement should use "<" in rightmost
inequality in three lines:
if ( ( area0 == 0 ) && ( area1 < 0 ) && ( area2 < 0 ) ||
( area1 == 0 ) && ( area0 < 0 ) && ( area2 < 0 ) ||
( area2 == 0 ) && ( area0 < 0 ) && ( area1 < 0 ) )
return 'E';
This is correct in the distributed code.
[(Thanks to Levi Cameron.)]
P276, L-1; P277, L5, L7, L25; P278, A7.5:
"Algorithm 7.10.1" should be "Algorithm 7.4"
^^ ^
P305, T8.4.2:
For the R=convex and P=nonconvex line of the table,
"O(n^2 logn)" should be "O(n logn)".
[Thanks to Dan Sunday.]
P335, Code 8.11 & Code 8.13:
I declared e.g. rplus2 to be double to avoid overflow.
But the computation (r1+r2)*(r1+r2) is performed in int's
because r1 and r2 are int's. Only after the int computation
is finished, is it converted to double. So in fact I do not
avoid overflow. (The code has not been altered.)
[Thanks to Mark Yagnatinsky]