1qhull(1)                    General Commands Manual                   qhull(1)
2
3
4

NAME

6       qhull - convex hull, Delaunay triangulation, Voronoi diagram, halfspace
7       intersection about a point, hull volume, facet area
8

SYNOPSIS

10       qhull- compute convex hulls and related structures
11           input (stdin): dimension, #points, point coordinates
12           first comment (non-numeric) is listed in the summary
13           halfspace: use dim plus one with offsets after coefficients
14
15       options (qh-quick.htm):
16           d      - Delaunay triangulation by lifting points to a paraboloid
17           v      - Voronoi diagram via the Delaunay triangulation
18           H1,1   - Halfspace intersection about [1,1,0,...]
19           d Qu   - Furthest-site Delaunay triangulation (upper convex hull)
20           v Qu   - Furthest-site Voronoi diagram
21           Qt     - triangulated output
22           QJ     - Joggle the input to avoid precision problems
23           .      - concise list of all options
24           -      - one-line description of all options
25
26       Output options (subset):
27           FA     - compute total area and volume
28           Fx     - extreme points (convex hull vertices)
29           G      - Geomview output (2-d, 3-d and 4-d)
30           Fp     - halfspace intersection coordinates
31           m      - Mathematica output (2-d and 3-d)
32           n      - normals with offsets
33           o      - OFF file format (if Voronoi, outputs regions)
34           TO file- output results to file, may be enclosed in single quotes
35           f      - print all fields of all facets
36           s      - summary of results (default)
37           Tv     - verify result: structure, convexity, and point inclusion
38           p      - vertex coordinates (centers for Voronoi)
39           i      - vertices incident to each facet
40
41       example:
42           rbox 1000 s | qhull Tv s FA
43
44        - html manual:    index.htm
45        - installation:   README.txt
46        - see also:       COPYING.txt, REGISTER.txt, Changes.txt
47        - WWW:  <http://www.qhull.org>
48        - CVS:  <http://savannah.nongnu.org/projects/qhull/>
49        -  mirror:   <http://www6.uniovi.es/ftp/pub/mirrors/geom.umn.edu/soft
50       ware/ghindex.html>
51        - news: <http://www.qhull.org/news>
52        - Geomview:  <http://www.geomview.org>
53        - news group:     <news:comp.graphics.algorithms>
54        - FAQ:       <http://exaflop.org/docs/cgafaq/cga6.html>
55        - email:          qhull@qhull.org
56        - bug reports:    qhull_bug@qhull.org
57
58       The sections are:
59        - INTRODUCTION
60        - DESCRIPTION, a description of Qhull
61        - IMPRECISION, how Qhull handles imprecision
62        - OPTIONS
63        -    Input and output options
64        -    Additional input/output formats
65        -    Precision options
66        -    Geomview options
67        -    Print options
68        -    Qhull options
69        -    Trace options
70        - BUGS
71        - E-MAIL
72        - SEE ALSO
73        - AUTHORS
74        - ACKNOWLEGEMENTS
75
76       This  man  page briefly describes all Qhull options.  Please report any
77       mismatches with Qhull's html manual (index.htm).
78
79

INTRODUCTION

81       Qhull is a general dimension code for computing convex hulls,  Delaunay
82       triangulations,  Voronoi  diagram,  furthest-site Voronoi diagram, fur‐
83       thest-site Delaunay triangulations, and halfspace intersections about a
84       point.   It implements the Quickhull algorithm for computing the convex
85       hull.  Qhull handles round-off errors from floating  point  arithmetic.
86       It can approximate a convex hull.
87
88       The  program  includes  options  for  hull  volume, facet area, partial
89       hulls, input transformations, randomization, tracing,  multiple  output
90       formats,  and  execution  statistics.   The  program can be called from
91       within your application.  You can view the results in 2-d, 3-d and  4-d
92       with Geomview.
93

DESCRIPTION

95       The  format  of  input is the following: first line contains the dimen‐
96       sion, second line contains the number of input points, and point  coor‐
97       dinates  follow.   The  dimension and number of points can be reversed.
98       Comments and line breaks are ignored.  A comment  starts  with  a  non-
99       numeric  character and continues to the end of line.  The first comment
100       is reported in summaries and statistics.  Error reporting is better  if
101       there is one point per line.
102
103       The  default  printout  option is a short summary. There are many other
104       output formats.
105
106       Qhull implements the Quickhull algorithm for convex  hull.  This  algo‐
107       rithm  combines the 2-d Quickhull algorithm with the n-d beneath-beyond
108       algorithm [c.f., Preparata & Shamos '85].  It is similar to the random‐
109       ized algorithms of Clarkson and others [Clarkson et al. '93].  The main
110       advantages of Quickhull are output sensitive performance, reduced space
111       requirements, and automatic handling of precision problems.
112
113       The  data structure produced by Qhull consists of vertices, ridges, and
114       facets.  A vertex is a point of the input set.  A ridge is a set  of  d
115       vertices and two neighboring facets.  For example in 3-d, a ridge is an
116       edge of the polyhedron.  A facet is a set of ridges, a set of neighbor‐
117       ing facets, a set of incident vertices, and a hyperplane equation.  For
118       simplicial facets, the ridges are defined by the vertices and neighbor‐
119       ing facets.  When Qhull merges two facets, it produces a non-simplicial
120       facet.  A non-simplicial facet has more than d neighbors and may  share
121       more than one ridge with a neighbor.
122

IMPRECISION

124       Since  Qhull  uses  floating point arithmetic, roundoff error may occur
125       for each calculation.  This causes  problems for most  geometric  algo‐
126       rithms.
127
128       Qhull  automatically  sets option 'C-0' in 2-d, 3-d, and 4-d, or option
129       'Qx' in 5-d and higher.  These options  handle  precision  problems  by
130       merging facets.  Alternatively, use option 'QJ' to joggle the input.
131
132       With 'C-0', Qhull merges non-convex facets while constructing the hull.
133       The remaining facets are clearly convex. With 'Qx', Qhull merges copla‐
134       nar  horizon  facets,  flipped  facets,  concave  facets and duplicated
135       ridges.  It merges coplanar facets after constructing the  hull.   With
136       'Qx', coplanar points may be missed, but it appears to be unlikely.
137
138       To  guarantee  triangular  output,  joggle  the input with option 'QJ'.
139       Facet merging will not occur.
140

OPTIONS

142       To get a list of the most important options, execute 'qhull' by itself.
143       To  get  a  complete list of options, execute 'qhull -'.  To get a com‐
144       plete, concise list of options, execute 'qhull .'.
145
146       Options can be in any order.   Capitalized  options  take  an  argument
147       (except 'PG' and 'F' options).  Single letters are used for output for‐
148       mats and precision constants.  The other options are grouped into menus
149       for  other output formats ('F'), Geomview output ('G'), printing ('P'),
150       Qhull control ('Q'), and tracing ('T').
151
152       Main options:
153
154       default
155              Compute the convex hull of the input points.  Report  a  summary
156              of the result.
157
158       d      Compute  the  Delaunay triangulation by lifting the input points
159              to a paraboloid.  The 'o' option prints  the  input  points  and
160              facets.  The 'QJ' option guarantees triangular output.  The 'Ft'
161              option prints a triangulation.  It adds points (the centrums) to
162              non-simplicial facets.
163
164       v      Compute  the  Voronoi  diagram  from the Delaunay triangulation.
165              The 'p' option prints the  Voronoi  vertices.   The  'o'  option
166              prints  the  Voronoi  vertices  and the vertices in each Voronoi
167              region.  It lists regions in site ID  order.   The  'Fv'  option
168              prints  each ridge of the Voronoi diagram.  The first or zero'th
169              vertex indicates  the  infinity  vertex.   Its  coordinates  are
170              qh_INFINITE  (-10.101).   It indicates unbounded Voronoi regions
171              or degenerate Delaunay triangles.
172
173       Hn,n,...
174              Compute halfspace intersection about [n,n,0,...].  The input  is
175              a set of halfspaces defined in the same format as 'n', 'Fo', and
176              'Fi'.  Use 'Fp' to print the intersection points.  Use  'Fv'  to
177              list the intersection points for each halfspace.  The other out‐
178              put formats display the dual convex hull.
179
180              The point [n,n,n,...] is a feasible point  for  the  halfspaces,
181              i.e.,  a point that is inside all of the halfspaces (Hx+b <= 0).
182              The default coordinate value is 0.
183
184              The input may start with a feasible point.  If so,  use  'H'  by
185              itself.   The  input starts with a feasible point when the first
186              number is the dimension, the second number is "1", and the coor‐
187              dinates  complete  a  line.  The 'FV' option produces a feasible
188              point for a convex hull.
189
190       d Qu   Compute the furthest-site Delaunay triangulation from the  upper
191              convex hull.  The 'o' option prints the input points and facets.
192              The 'QJ' option guarantees triangular otuput.  You can also  use
193              facets.
194
195       v Qu   Compute  the  furthest-site  Voronoi  diagram.   The  'p' option
196              prints the Voronoi vertices.  The 'o' option prints the  Voronoi
197              vertices  and  the  vertices  in  each Voronoi region.  The 'Fv'
198              option prints each ridge of the Voronoi diagram.  The  first  or
199              zero'th  vertex  indicates the infinity vertex at infinity.  Its
200              coordinates are qh_INFINITE (-10.101).  It  indicates  unbounded
201              Voronoi regions and degenerate Delaunay triangles.
202
203       Input/Output options:
204
205       f      Print out all facets and all fields of each facet.
206
207       G      Output  the  hull  in  Geomview  format.   For  imprecise hulls,
208              Geomview displays the inner and outer hull.  Geomview  can  also
209              display  points,  ridges,  vertices,  coplanar points, and facet
210              intersections.  See below for a list of options.
211
212              For Delaunay triangulations, 'G' displays the corresponding  pa‐
213              raboloid.   For  halfspace  intersection,  'G' displays the dual
214              polytope.
215
216       i      Output the incident vertices for each facet.  Qhull  prints  the
217              number  of  facets  followed by the vertices of each facet.  One
218              facet is printed per  line.   The  numbers  are  the  0-relative
219              indices  of the corresponding input points.  The facets are ori‐
220              ented.
221
222              In 4-d and higher,  Qhull  triangulates  non-simplicial  facets.
223              Each apex (the first vertex) is a created point that corresponds
224              to the facet's centrum.  Its index is greater than  the  indices
225              of  the  input  points.   Each  base corresponds to a simplicial
226              ridge between two facets.  To print the vertices without  trian‐
227              gulation, use option 'Fv'.
228
229       m      Output the hull in Mathematica format.  Qhull writes a Mathemat‐
230              ica file for 2-d and 3-d convex hulls and for 2-d Delaunay  tri‐
231              angulations.    Qhull  produces  a  list of objects that you can
232              assign to a variable in  Mathematica,  for  example:  "list=  <<
233              <outputfilename>  ".  If the object is 2-d, it can be visualized
234              by "Show[Graphics[list]] ".  For  3-d  objects  the  command  is
235              "Show[Graphics3D[list]]".
236
237       n      Output  the  normal  equation  for each facet.  Qhull prints the
238              dimension (plus one), the number of facets, and the normals  for
239              each facet.  The facet's offset follows its normal coefficients.
240
241       o      Output  the  facets in OFF file format.  Qhull prints the dimen‐
242              sion, number of points, number of facets, and number of  ridges.
243              Then  it prints the coordinates of the input points and the ver‐
244              tices for each facet.  Each facet is on a  separate  line.   The
245              first  number  is the number of vertices.  The remainder are the
246              indices of the corresponding points.  The vertices are  oriented
247              in 2-d, 3-d, and in simplicial facets.
248
249              For  2-d Voronoi diagrams, the vertices are sorted by adjacency,
250              but not oriented.  In 3-d and higher, the Voronoi  vertices  are
251              sorted by index.  See the 'v' option for more information.
252
253       p      Output  the  coordinates of each vertex point.  Qhull prints the
254              dimension, the number of points, and the  coordinates  for  each
255              vertex.  With the 'Gc' and 'Gi' options, it also prints coplanar
256              and interior points.  For Voronoi diagrams, it prints the  coor‐
257              dinates of each Voronoi vertex.
258
259       s      Print  a  summary to stderr.  If no output options are specified
260              at all, a summary goes to stdout.  The summary lists the  number
261              of  input  points,  the dimension, the number of vertices in the
262              convex hull, the number of facets in the convex hull, the number
263              of good facets (if 'Pg'), and statistics.
264
265              The last two statistics (if needed) measure the maximum distance
266              from a point or vertex to a facet.  The  number  in  parenthesis
267              (e.g.,  2.1x)  is the ratio between the maximum distance and the
268              worst-case distance due to merging two simplicial facets.
269
270       Precision options
271
272       An     Maximum angle given as a cosine.  If the angle between a pair of
273              facet  normals is greater than n, Qhull merges one of the facets
274              into a neighbor.  If 'n' is negative, Qhull tests  angles  after
275              adding  each  point  to the hull (pre-merging).  If 'n' is posi‐
276              tive, Qhull tests angles after constructing the hull (post-merg‐
277              ing).  Both pre- and post-merging can be defined.
278
279              Option  'C0'  or 'C-0' is set if the corresponding 'Cn' or 'C-n'
280              is not set.  If 'Qx' is set, then 'A-n' and  'C-n'  are  checked
281              after  the  hull  is  constructed  and  before 'An' and 'Cn' are
282              checked.
283
284       Cn     Centrum radius.  If a centrum is less than n below a neighboring
285              facet,  Qhull  merges  one of the facets.  If 'n' is negative or
286              '-0', Qhull tests and merges facets after adding each  point  to
287              the  hull.   This  is called "pre-merging".  If 'n' is positive,
288              Qhull tests for convexity after constructing  the  hull  ("post-
289              merging").  Both pre- and post-merging can be defined.
290
291              For  5-d and higher, 'Qx' should be used instead of 'C-n'.  Oth‐
292              erwise, most or all facets may be merged together.
293
294       En     Maximum roundoff error for distance computations.
295
296       Rn     Randomly perturb distance computations up to +/- n *  max_coord.
297              This  option perturbs every distance, hyperplane, and angle com‐
298              putation.  To use time as the random  number  seed,  use  option
299              'QR-1'.
300
301       Vn     Minimum  distance for a facet to be visible.  A facet is visible
302              if the distance from the point to  the  facet  is  greater  than
303              'Vn'.
304
305              Without  merging,  the  default  value for 'Vn' is the round-off
306              error ('En').  With merging, the default value is the  pre-merge
307              centrum  ('C-n')  in  2-d  or 3--d, or three times that in other
308              dimensions.  If the outside width is specified ('Wn'), the maxi‐
309              mum, default value for 'Vn' is 'Wn'.
310
311       Un     Maximum distance below a facet for a point to be coplanar to the
312              facet.  The default value is 'Vn'.
313
314       Wn     Minimum outside width of the hull.  Points are added to the con‐
315              vex  hull  only if they are clearly outside of a facet.  A point
316              is outside of a facet if its distance to the  facet  is  greater
317              than  'Wn'.   The  normal  value  for 'Wn' is 'En'.  If the user
318              specifies pre-merging and does not set 'Wn', than 'Wn' is set to
319              the premerge 'Cn' and maxcoord*(1-An).
320
321       Additional input/output formats
322
323       Fa     Print  area  for  each  facet.  For Delaunay triangulations, the
324              area is the area of the triangle.   For  Voronoi  diagrams,  the
325              area  is the area of the dual facet.  Use 'PAn' for printing the
326              n largest facets, and option 'PFn' for  printing  facets  larger
327              than 'n'.
328
329              The  area  for non-simplicial facets is the sum of the areas for
330              each ridge to the centrum.    Vertices  far  below  the  facet's
331              hyperplane  are ignored.  The reported area may be significantly
332              less than the actual area.
333
334       FA     Compute the total area and volume for  option  's'.   It  is  an
335              approximation for non-simplicial facets (see 'Fa').
336
337       Fc     Print  coplanar  points  for each facet.  The output starts with
338              the number of facets.  Then each facet is printed one per  line.
339              Each line is the number of coplanar points followed by the point
340              ids.  Option 'Qi' includes the interior points.   Each  coplanar
341              point  (interior  point) is assigned to the facet it is furthest
342              above (resp., least below).
343
344       FC     Print centrums for each  facet.   The  output  starts  with  the
345              dimension  followed  by  the  number of facets.  Then each facet
346              centrum is printed, one per line.
347
348       Fd     Read input in cdd format with  homogeneous  points.   The  input
349              starts with comments.  The first comment is reported in the sum‐
350              mary.  Data starts after a "begin" line.  The next line  is  the
351              number  of  points  followed  by  the  dimension+1 and "real" or
352              "integer".  Then the points are listed  with a  leading  "1"  or
353              "1.0".  The data ends with an "end" line.
354
355              For  halfspaces  ('Fd  Hn,n,...'), the input format is the same.
356              Each halfspace starts with its offset.  The sign of  the  offset
357              is the opposite of Qhull's convention.
358
359       FD     Print  normals  ('n', 'Fo', 'Fi') or points ('p') in cdd format.
360              The first line is the command line  that  invoked  Qhull.   Data
361              starts with a "begin" line.  The next line is the number of nor‐
362              mals or points followed by the dimension+1 and "real".  Then the
363              normals or points are listed  with the offset before the coeffi‐
364              cients.  The offset for points is 1.0.  The offset  for  normals
365              has the opposite sign.  The data ends with an "end" line.
366
367       FF     Print facets (as in 'f') without printing the ridges.
368
369       Fi     Print inner planes for each facet.  The inner plane is below all
370              vertices.
371
372       Fi     Print separating hyperplanes for bounded, inner regions  of  the
373              Voronoi  diagram.  The first line is the number of ridges.  Then
374              each hyperplane is printed, one per line.  A  line  starts  with
375              the number of indices and floats.  The first pair lists adjacent
376              input sites, the next d floats are the  normalized  coefficients
377              for  the  hyperplane,  and  the  last  float is the offset.  The
378              hyperplane is oriented toward verify that  the  hyperplanes  are
379              perpendicular  bisectors.   Use  'Fo' for unbounded regions, and
380              'Fv' for the corresponding Voronoi vertices.
381
382       FI     Print facet identifiers.
383
384       Fm     Print number of merges for each facet.  At most 511  merges  are
385              reported  for  a  facet.  See 'PMn' for printing the facets with
386              the most merges.
387
388       FM     Output the hull in Maple format.  Qhull writes a Maple file  for
389              2-d  and  3-d  convex hulls and for 2-d Delaunay triangulations.
390              Qhull produces a '.mpl' file for displaying with display3d().
391
392       Fn     Print neighbors for each facet.  The output starts with the num‐
393              ber  of  facets.  Then each facet is printed one per line.  Each
394              line is the number of neighbors followed by an  index  for  each
395              neighbor.  The indices match the other facet output formats.
396
397              A  negative  index  indicates an unprinted facet due to printing
398              only good facets ('Pg').  It is the negation of the  facet's  ID
399              (option  'FI').   For  example,  negative  indices  are used for
400              facets "at infinity" in the Delaunay triangulation.
401
402       FN     Print vertex neighbors or coplanar facet for  each  point.   The
403              first line is the number of points.  Then each point is printed,
404              one per line.  If the point is coplanar, the line  is  "1"  fol‐
405              lowed by the facet's ID.  If the point is not a selected vertex,
406              the line is "0".  Otherwise, each line is the number  of  neigh‐
407              bors followed by the corresponding facet indices (see 'Fn').
408
409       Fo     Print  outer  planes  for  each facet in the same format as 'n'.
410              The outer plane is above all points.
411
412       Fo     Print separating hyperplanes for unbounded, outer regions of the
413              Voronoi  diagram.  The first line is the number of ridges.  Then
414              each hyperplane is printed, one per line.  A  line  starts  with
415              the number of indices and floats.  The first pair lists adjacent
416              input sites, the next d floats are the  normalized  coefficients
417              for  the  hyperplane,  and  the  last  float is the offset.  The
418              hyperplane is oriented toward verify that  the  hyperplanes  are
419              perpendicular bisectors.  Use 'Fi' for bounded regions, and 'Fv'
420              for the corresponding Voronoi vertices.
421
422       FO     List all options to stderr, including the default values.  Addi‐
423              tional 'FO's are printed to stdout.
424
425       Fp     Print  points  for  halfspace intersections (option 'Hn,n,...').
426              Each intersection corresponds to a facet of the  dual  polytope.
427              The   "infinity"   point   [-10.101,-10.101,...]   indicates  an
428              unbounded intersection.
429
430       FP     For each coplanar point ('Qc') print the point ID of the nearest
431              vertex, the point ID, the facet ID, and the distance.
432
433       FQ     Print command used for qhull and input.
434
435       Fs     Print a summary.  The first line consists of the number of inte‐
436              gers ("8"), followed by the dimension, the number of points, the
437              number of vertices, the number of facets, the number of vertices
438              selected for output, the number of facets selected  for  output,
439              the  number  of  coplanar  points selected for output, number of
440              simplicial, unmerged facets in output
441
442              The second line consists of the number of reals ("2"),  followed
443              by  the maxmimum offset to an outer plane and and minimum offset
444              to an inner plane.  Roundoff is  included.   Later  versions  of
445              Qhull may produce additional integers or reals.
446
447       FS     Print the size of the hull.  The first line consists of the num‐
448              ber of integers ("0").  The second line consists of  the  number
449              of  reals ("2"), followed by the total facet area, and the total
450              volume.  Later versions of Qhull may produce additional integers
451              or reals.
452
453              The  total volume measures the volume of the intersection of the
454              halfspaces defined by each facet.   Both  area  and  volume  are
455              approximations for non-simplicial facets.  See option 'Fa'.
456
457       Ft     Print  a  triangulation  with  added  points  for non-simplicial
458              facets.  The first line is the dimension and the second line  is
459              the  number of points and the number of facets.  The points fol‐
460              low, one per line, then the facets follow as  a  list  of  point
461              indices.  With option points include the point-at-infinity.
462
463       Fv     Print  vertices for each facet.  The first line is the number of
464              facets.  Then each facet is printed, one per line.  Each line is
465              the  number of vertices followed by the corresponding point ids.
466              Vertices are listed in the order they were  added  to  the  hull
467              (the last one is first).
468
469       Fv     Print  all  ridges  of a Voronoi diagram.  The first line is the
470              number of ridges.  Then each ridge is printed, one per line.   A
471              line  starts  with  the number of indices.  The first pair lists
472              adjacent input sites, the remaining indices  list  Voronoi  ver‐
473              tices.   Vertex  '0'  indicates the vertex-at-infinity (i.e., an
474              unbounded ray).  In 3-d, the vertices are listed in order.   See
475              'Fi' and 'Fo' for separating hyperplanes.
476
477       FV     Print  average  vertex.   The average vertex is a feasible point
478              for halfspace intersection.
479
480       Fx     List extreme points (vertices) of the convex  hull.   The  first
481              line  is the number of points.  The other lines give the indices
482              of the corresponding points.  The first point is '0'.   In  2-d,
483              the  points  occur  in  counter-clockwise  order; otherwise they
484              occur in input order.  For Delaunay triangulations,  'Fx'  lists
485              the   extreme  points  of  the  input  sites.   The  points  are
486              unordered.
487
488       Geomview options
489
490       G      Produce  a  file  for  viewing  with  Geomview.   Without  other
491              options,  Qhull  displays edges in 2-d, outer planes in 3-d, and
492              ridges in 4-d.   A  ridge  can  be  explicit  or  implicit.   An
493              explicit  ridge  is  a  dim-1  dimensional  simplex  between two
494              facets.  In 4-d, the explicit ridges are triangles.   When  dis‐
495              playing  a  ridge in 4-d, Qhull projects the ridge's vertices to
496              one of its facets' hyperplanes.  Use 'Gh' to project  ridges  to
497              the intersection of both hyperplanes.
498
499       Ga     Display all input points as dots.
500
501       Gc     Display  the  centrum  for  each  facet  in 3-d.  The centrum is
502              defined by a green radius sitting on a blue  plane.   The  plane
503              corresponds to the facet's hyperplane.  The radius is defined by
504              'C-n' or 'Cn'.
505
506       GDn    Drop dimension n in 3-d or 4-d.  The result  is  a  2-d  or  3-d
507              object.
508
509       Gh     Display  hyperplane  intersections in 3-d and 4-d.   In 3-d, the
510              intersection is a black line.  It lies on two neighboring hyper‐
511              planes (c.f., the blue squares associated with centrums ('Gc')).
512              In 4-d, the ridges are projected to  the  intersection  of  both
513              hyperplanes.
514
515       Gi     Display inner planes in 2-d and 3-d.  The inner plane of a facet
516              is below all of its vertices.  It is  parallel  to  the  facet's
517              hyperplane.    The   inner   plane's   color   is  the  opposite
518              (1-r,1-g,1-b) of the outer plane.  Its edges are  determined  by
519              the vertices.
520
521       Gn     Do not display inner or outer planes.  By default, Geomview dis‐
522              plays the precise plane (no merging) or both  inner  and  output
523              planes  (merging).  Under merging, Geomview does not display the
524              inner plane if the the difference between inner and outer is too
525              small.
526
527       Go     Display outer planes in 2-d and 3-d.  The outer plane of a facet
528              is above all input points.  It is parallel to the facet's hyper‐
529              plane.   Its  color is determined by the facet's normal, and its
530              edges are determined by the vertices.
531
532       Gp     Display coplanar points and vertices as radii.  A radius defines
533              a  ball  which corresponds to the imprecision of the point.  The
534              imprecision is the maximum of the roundoff  error,  the  centrum
535              radius,  and  maxcoord  * (1-An).  It is at least 1/20'th of the
536              maximum coordinate, and ignores post-merging if  pre-merging  is
537              done.
538
539       Gr     Display  ridges  in 3-d.  A ridge connects the two vertices that
540              are shared by neighboring facets.  Ridges are  always  displayed
541              in 4-d.
542
543       Gt     A 3-d Delaunay triangulation looks like a convex hull with inte‐
544              rior facets.  Option 'Gt' removes the outside ridges  to  reveal
545              the  outermost  facets.   It automatically sets options 'Gr' and
546              'GDn'.
547
548       Gv     Display vertices as spheres.  The radius of  the  sphere  corre‐
549              sponds to the imprecision of the data.  See 'Gp' for determining
550              the radius.
551
552       Print options
553
554       PAn    Only the n largest facets are marked good for printing.   Unless
555              'PG' is set, 'Pg' is automatically set.
556
557       Pdk:n  Drop facet from output if normal[k] <= n.  The option 'Pdk' uses
558              the default value of 0 for n.
559
560       PDk:n  Drop facet from output if normal[k] >= n.  The option 'PDk' uses
561              the default value of 0 for n.
562
563       PFn    Only facets with area at least 'n' are marked good for printing.
564              Unless 'PG' is set, 'Pg' is automatically set.
565
566       Pg     Print only good facets.  A good facet is either visible  from  a
567              point (the 'QGn' option) or includes a point (the 'QVn' option).
568              It also meets the  requirements  of  'Pdk'  and  'PDk'  options.
569              Option 'Pg' is automatically set for options 'PAn' and 'PFn'.
570
571       PG     Print neighbors of good facets.
572
573       PMn    Only  the  n  facets  with  the  most merges are marked good for
574              printing.  Unless 'PG' is set, 'Pg' is automatically set.
575
576       Po     Force output despite precision problems.  Verify ('Tv') does not
577              check  coplanar points.  Flipped facets are reported and concave
578              facets are counted.  If 'Po' is used, points are not partitioned
579              into  flipped  facets and a flipped facet is always visible to a
580              point.  Also, if an error occurs before the completion of  Qhull
581              and  tracing  is  not active, 'Po' outputs a neighborhood of the
582              erroneous facets (if any).
583
584       Pp     Do not report precision problems.
585
586       Qhull control options
587
588       Qbk:0Bk:0
589              Drop dimension k from the input points.  This allows the user to
590              take convex hulls of sub-dimensional objects.  It happens before
591              the Delaunay and Voronoi transformation.
592
593       QbB    Scale the input points to fit the unit cube.  After scaling, the
594              lower  bound will be -0.5 and the upper bound +0.5 in all dimen‐
595              sions.  For Delaunay and Voronoi diagrams, scaling happens after
596              projection to the paraboloid.  Under precise arithmetic, scaling
597              does not change the topology of the convex hull.
598
599       Qbb    Scale the last coordinate to [0, m] where m is the maximum abso‐
600              lute  value  of the other coordinates.  For Delaunay and Voronoi
601              diagrams, scaling happens after projection  to  the  paraboloid.
602              It  reduces  roundoff error for inputs with integer coordinates.
603              Under precise arithmetic, scaling does not change  the  topology
604              of the convex hull.
605
606       Qbk:n  Scale  the  k'th coordinate of the input points.  After scaling,
607              the lower bound of the input points will be n.  'Qbk' scales  to
608              -0.5.
609
610       QBk:n  Scale  the  k'th coordinate of the input points.  After scaling,
611              the upper bound will be n.  'QBk' scales to +0.5.
612
613       Qc     Keep coplanar points with the  nearest  facet.   Output  formats
614              'p', 'f', 'Gp', 'Fc', 'FN', and 'FP' will print the points.
615
616       Qf     Partition points to the furthest outside facet.
617
618       Qg     Only  build  good facets.  With the 'Qg' option, Qhull will only
619              build those facets that it needs to determine the good facets in
620              the  output.   See  'QGn',  'QVn',  and  'PdD' for defining good
621              facets, and 'Pg' and 'PG' for printing  good  facets  and  their
622              neighbors.
623
624       QGn    A  facet is good (see 'Qg' and 'Pg') if it is visible from point
625              n.  If n < 0, a facet is good if it is not visible from point n.
626              Point  n is not added to the hull (unless 'TCn' or 'TPn').  With
627              rbox, use the 'Pn,m,r' option to define your point; it  will  be
628              point 0 (QG0).
629
630       Qi     Keep  interior  points  with  the nearest facet.  Output formats
631              'p', 'f', 'Gp', 'FN', 'FP', and 'Fc' will print the points.
632
633       QJn    Joggle each input  coordinate  by  adding  a  random  number  in
634              [-n,n].  If a precision error occurs, then qhull increases n and
635              tries again.  It does not increase n beyond a certain value, and
636              it  stops  after  a  certain  number  of  attempts [see user.h].
637              Option 'QJ' selects a default value for n.  The output  will  be
638              simplicial.   For  Delaunay  triangulations, 'QJn' sets 'Qbb' to
639              scale the last coordinate (not if 'Qbk:n' or  'QBk:n'  is  set).
640              See also 'Qt'.
641
642       Qm     Only  process  points that would otherwise increase max_outside.
643              Other points are treated as coplanar or interior points.
644
645       Qr     Process random outside points instead of  furthest  ones.   This
646              makes Qhull equivalent to the randomized incremental algorithms.
647              CPU time is not reported since the randomization is inefficient.
648
649       QRn    Randomly rotate the input points.  If n=0, use time as the  ran‐
650              dom  number  seed.  If n>0, use n as the random number seed.  If
651              n=-1, don't rotate but use time as the random number seed.   For
652              Delaunay  triangulations  ('d'  and  'v'), rotate about the last
653              axis.
654
655       Qs     Search all points for the initial simplex.
656
657       Qt     Triangulated output.   Triangulate  all  non-simplicial  facets.
658              See also 'QJ'.
659
660       Qv     Test  vertex neighbors for convexity after post-merging.  To use
661              the 'Qv' option, you also need to set a merge option (e.g., 'Qx'
662              or 'C-0').
663
664       QVn    A good facet (see 'Qg' and 'Pg') includes point n.  If n<0, then
665              a good facet does not include point n.  The point is  either  in
666              the  initial simplex or it is the first point added to the hull.
667              Option 'QVn' may not be used with merging.
668
669       Qx     Perform exact merges  while  building  the  hull.   The  "exact"
670              merges  are  merging  a  point into a coplanar facet (defined by
671              'Vn', 'Un', and 'C-n'), merging concave facets,  merging  dupli‐
672              cate  ridges,  and  merging flipped facets.  Coplanar merges and
673              angle coplanar merges  ('A-n')  are  not  performed.   Concavity
674              testing is delayed until a merge occurs.
675
676              After  the  hull  is  built,  all  coplanar merges are performed
677              (defined by 'C-n' and 'A-n'),  then  post-merges  are  performed
678              (defined by 'Cn' and 'An').
679
680       Qz     Add  a  point  "at  infinity"  that  is above the paraboloid for
681              Delaunay triangulations and Voronoi diagrams.  This reduces pre‐
682              cision  problems  and  allows  the  triangulation of cospherical
683              points.
684
685       Qhull experiments and speedups
686
687       Q0     Turn off pre-merging as a default option.   With  'Q0'/'Qx'  and
688              without  explicit  pre-merge  options,  Qhull  ignores precision
689              issues while constructing the convex hull.   This  may  lead  to
690              precision errors.  If so, a descriptive warning is generated.
691
692       Q1     With 'Q1', Qhull sorts merges by type (coplanar, angle coplanar,
693              concave) instead of by angle.
694
695       Q2     With 'Q2', Qhull merges all facets  at  once  instead  of  using
696              independent sets of merges and then retesting.
697
698       Q3     With 'Q3', Qhull does not remove redundant vertices.
699
700       Q4     With 'Q4', Qhull avoids merges of an old facet into a new facet.
701
702       Q5     With  'Q5', Qhull does not correct outer planes at the end.  The
703              maximum outer plane is used instead.
704
705       Q6     With 'Q6', Qhull does not pre-merge concave or coplanar facets.
706
707       Q7     With 'Q7', Qhull processes facets in depth-first  order  instead
708              of breadth-first order.
709
710       Q8     With  'Q8'  and  merging,  Qhull  does  not retain near-interior
711              points for adjusting outer planes.  'Qc'  will  probably  retain
712              all points that adjust outer planes.
713
714       Q9     With  'Q9',  Qhull processes the furthest of all outside sets at
715              each iteration.
716
717       Q10    With 'Q10', Qhull does not use  special  processing  for  narrow
718              distributions.
719
720       Q11    With 'Q11', Qhull copies normals and recompute centrums for tri‐
721              coplanar facets.
722
723       Trace options
724
725       Tn     Trace at level n.  Qhull includes full execution tracing.  'T-1'
726              traces  events.   'T1'  traces the overall execution of the pro‐
727              gram.  'T2' and 'T3' trace overall execution and  geometric  and
728              topological  events.   'T4' traces the algorithm.  'T5' includes
729              information about memory allocation and Gaussian elimination.
730
731       Tc     Check frequently during execution.  This will catch most  incon‐
732              sistency errors.
733
734       TCn    Stop  Qhull  after  building the cone of new facets for point n.
735              The output for 'f' includes the cone and the old hull.  See also
736              'TVn'.
737
738       TFn    Report  progress  whenever more than n facets are created During
739              post-merging, 'TFn' reports progress after more than n/2 merges.
740
741       TI file
742              Input data from 'file'.  The filename may not include spaces  or
743              quotes.
744
745       TO file
746              Output  results  to  'file'.  The name may be enclosed in single
747              quotes.
748
749       TPn    Turn on tracing when point n is added to the hull.  Trace parti‐
750              tions  of  point  n.   If  used with TWn, turn off tracing after
751              adding point n to the hull.
752
753       TRn    Rerun qhull n times.  Usually used with 'QJn' to  determine  the
754              probability that a given joggle will fail.
755
756       Ts     Collect statistics and print to stderr at the end of execution.
757
758       Tv     Verify  the convex hull.  This checks the topological structure,
759              facet convexity, and point  inclusion.   If  precision  problems
760              occurred,  facet  convexity  is  tested  whether  or not 'Tv' is
761              selected.  Option 'Tv' does not check point inclusion if forcing
762              output with 'Po', or if 'Q5' is set.
763
764              For  point inclusion testing, Qhull verifies that all points are
765              below all outer planes (facet->maxoutside).  Point inclusion  is
766              exhaustive  if  merging  or  if the facet-point product is small
767              enough; otherwise Qhull verifies  each  point  with  a  directed
768              search (qh_findbest).
769
770              Point  inclusion  testing  occurs  after  producing  output.  It
771              prints a message to stderr unless option  'Pp'  is  used.   This
772              allows the user to interrupt Qhull without changing the output.
773
774       TVn    Stop  Qhull  after  adding point n.  If n < 0, stop Qhull before
775              adding point n.  Output shows the hull at this time.   See  also
776              'TCn'
777
778       TMn    Turn on tracing at n'th merge.
779
780       TWn    Trace merge facets when the width is greater than n.
781
782       Tz     Redirect stderr to stdout.
783

BUGS

785       Please report bugs to Brad Barber at qhull_bug@qhull.org.
786
787       If Qhull does not compile, it is due to an incompatibility between your
788       system and ours.  The first thing to check is  that  your  compiler  is
789       ANSI  standard.   If it is, check the man page for the best options, or
790       find someone to help you.  If you locate the  cause  of  your  problem,
791       please send email since it might help others.
792
793       If Qhull compiles but crashes on the test case (rbox D4), there's still
794       incompatibility between your system and ours.  Typically it's been  due
795       to  mem.c  and memory alignment.  You can use qh_NOmem in mem.h to turn
796       off memory management.  Please let us know if you figure out how to fix
797       these problems.
798
799       If  you  do  find  a  problem,  try to simplify it before reporting the
800       error.  Try different size inputs  to  locate  the  smallest  one  that
801       causes  an  error.   You're  welcome to hunt through the code using the
802       execution trace as a guide.  This is especially true if you're incorpo‐
803       rating Qhull into your own program.
804
805       When  you  do  report  an error, please attach a data set to the end of
806       your message.  This allows us to see the error for ourselves.  Qhull is
807       maintained part-time.
808

E-MAIL

810       Please  send  correspondence  to  qhull@qhull.org  and  report  bugs to
811       qhull_bug@qhull.org.  Let us know how you use Qhull.  If you mention it
812       in a paper, please send the reference and an abstract.
813
814       If  you would like to get Qhull announcements (e.g., a new version) and
815       news (any bugs that get fixed, etc.), let us know and we will  add  you
816       to our mailing list.  If you would like to communicate with other Qhull
817       users, we will add you to the qhull_users  alias.   For  Internet  news
818       about  geometric  algorithms  and  convex  hulls,  look  at comp.graph‐
819       ics.algorithms and sci.math.num-analysis
820
821

SEE ALSO

823       rbox(1)
824
825       Barber, C. B., D.P. Dobkin, and H.T. Huhdanpaa,  "The  Quickhull  Algo‐
826       rithm   for   Convex  Hulls,"  ACM  Trans.  on  Mathematical  Software,
827       22(4):469-483,  Dec.   1996.    http://www.acm.org/pubs/citations/jour
828       nals/toms/1996-22-4/p469-barber/ http://citeseer.nj.nec.com/83502.html
829
830       Clarkson, K.L., K. Mehlhorn, and R. Seidel, "Four results on randomized
831       incremental construction," Computational Geometry: Theory and  Applica‐
832       tions, vol. 3, p. 185-211, 1993.
833
834       Preparata,  F.  and M. Shamos, Computational Geometry, Springer-Verlag,
835       New York, 1985.
836
837

AUTHORS

839         C. Bradford Barber                    Hannu Huhdanpaa
840         bradb@qhull.org                    hannu@qhull.org
841
842                           c/o The Geometry Center
843                           University of Minnesota
844                           400 Lind Hall
845                           207 Church Street S.E.
846                           Minneapolis, MN 55455
847
848
849

ACKNOWLEDGEMENTS

851       A special thanks to Albert Marden, Victor Milenkovic, the Geometry Cen‐
852       ter, Harvard University, and Endocardial Solutions, Inc. for supporting
853       this work.
854
855       Qhull 1.0 and 2.0 were  developed  under  National  Science  Foundation
856       grants  NSF/DMS-8920161  and  NSF-CCR-91-15793  750-7504.  David Dobkin
857       guided the original work at Princeton University.  If you find it  use‐
858       ful, please let us know.
859
860       The Geometry Center is supported by grant DMS-8920161 from the National
861       Science Foundation, by grant DOE/DE-FG02-92ER25137 from the  Department
862       of Energy, by the University of Minnesota, and by Minnesota Technology,
863       Inc.
864
865       Qhull is available from http://www.qhull.org
866
867
868
869Geometry Center                   2003/12/30                          qhull(1)
Impressum