qhull.txt 39 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123
  1. qhull(1) qhull(1)
  2. NAME
  3. qhull - convex hull, Delaunay triangulation, Voronoi ver-
  4. tices, halfspace intersection, hull volume, facet area
  5. SYNOPSIS
  6. qhull- compute the convex hull.
  7. input (stdin): dimension, #points, point coordinates
  8. first comment (non-numeric) is listed in the summary
  9. halfspace: use dim plus one with offsets after coefficients
  10. options (qh-opt.htm):
  11. d - Delaunay triangulation by lifting points to a paraboloid
  12. v - Voronoi vertices and regions via Delaunay triangulation
  13. H1,1 - Halfspace intersection about [1,1,0,...]
  14. d Qu - Furthest-site Delaunay triangulation (upper convex hull)
  15. v Qu - Furthest-site Voronoi vertices and regions
  16. . - concise list of all options
  17. - - one-line description of all options
  18. Output options (subset):
  19. s - (default) summary to stderr
  20. Ft - triangulated output with centrums
  21. o - OFF file format (if Voronoi, outputs regions)
  22. i - vertices incident to each facet
  23. n - normals with offsets
  24. p - vertex coordinates (centers for Voronoi)
  25. Fp - halfspace intersection coordinates
  26. FA - compute total area and volume
  27. G - Geomview output (2-d, 3-d and 4-d)
  28. m - Mathematica output (2-d and 3-d)
  29. Tv - verify result: structure, convexity, and point inclusion
  30. f - print all fields of all facets
  31. example:
  32. rbox 1000 s | qhull Tv s FA
  33. - html manual: qh-man.htm
  34. - installation: README.txt
  35. - see also: COPYING.txt, REGISTER.txt, Changes.txt
  36. - WWW: <http://www.geom.umn.edu/locate/qhull>
  37. - news: <http://www.geom.umn.edu/~bradb/qhull-news.html>
  38. - ftp: <ftp://geom.umn.edu/pub/software/qhull.tar.Z>
  39. - <ftp://geom.umn.edu/pub/software/qhull-1.0.tar.Z>
  40. - Geomview: <http://www.geom.umn.edu/locate/geomview>
  41. - <ftp://geom.umn.edu/pub/software/geomview/>
  42. - news group: <news:comp.graphics.algorithms>
  43. - email: qhull@geom.umn.edu
  44. - bug reports: qhull_bug@geom.umn.edu
  45. The sections are:
  46. - INTRODUCTION
  47. - DESCRIPTION, a description of Qhull
  48. - IMPRECISION, how Qhull handles imprecision
  49. - OPTIONS
  50. Geometry Center April 2, 1997 1
  51. qhull(1) qhull(1)
  52. - Input and output options
  53. - Additional input/output formats
  54. - Precision options
  55. - Geomview options
  56. - Print options
  57. - Qhull options
  58. - Trace options
  59. - BUGS
  60. - E-MAIL
  61. - SEE ALSO
  62. - AUTHORS
  63. - ACKNOWLEGEMENTS
  64. This man page briefly describes all Qhull options. Please
  65. report any mismatches with Qhull's html manual (qh-
  66. man.htm).
  67. INTRODUCTION
  68. Qhull is a general dimension code for computing convex
  69. hulls, Delaunay triangulations, Voronoi vertices and
  70. regions, furthest-site Voronoi vertices, furthest-site
  71. Delaunay triangulations, and halfspace intersections. It
  72. implements the Quickhull algorithm for computing the con-
  73. vex hull. Qhull handles round-off errors from floating
  74. point arithmetic. It can approximate a convex hull.
  75. The program includes options for hull volume, facet area,
  76. partial hulls, input transformations, randomization, trac-
  77. ing, multiple output formats, and execution statistics.
  78. The program can be called from within your application.
  79. You can view the results in 2-d, 3-d and 4-d with
  80. Geomview.
  81. DESCRIPTION
  82. The format of input should be the following: first line
  83. contains the dimension, second line contains the number of
  84. input points, and point coordinates follow. The dimension
  85. and number of points can be reversed. Comments and line
  86. breaks are ignored. A comment starts with a non-numeric
  87. character and continues to the end of line. The first
  88. comment is reported in summaries and statistics. Error
  89. reporting is better if there is one point per line.
  90. The default printout option is a short summary. There are
  91. many other output formats.
  92. Qhull implements the Quickhull algorithm for convex hull.
  93. This algorithm combines the 2-d Quickhull algorithm with
  94. the n-d beneath-beyond algorithm [c.f., Preparata & Shamos
  95. '85]. It is similar to the randomized algorithms of
  96. Clarkson and others [Clarkson et al. '93]. The main
  97. Geometry Center April 2, 1997 2
  98. qhull(1) qhull(1)
  99. advantages of Quickhull are output sensitive performance,
  100. reduced space requirements, and automatic handling of pre-
  101. cision problems.
  102. The data structure produced by Qhull consists of vertices,
  103. ridges, and facets. A vertex is a point of the input set.
  104. A ridge is a set of d vertices and two neighboring facets.
  105. For example in 3-d, a ridge is an edge of the polyhedron.
  106. A facet is a set of ridges, a set of neighboring facets, a
  107. set of incident vertices, and a hyperplane equation. For
  108. simplicial facets, the ridges are defined by the vertices
  109. and neighboring facets. When Qhull merges two facets, it
  110. produces a non-simplicial facet. A non-simplicial facet
  111. has more than d neighbors and may share more than one
  112. ridge with a neighbor.
  113. IMPRECISION
  114. Since Qhull uses floating point arithmetic, roundoff error
  115. may occur for each calculation. This causes problems for
  116. most geometric algorithms.
  117. Qhull automatically sets option 'C-0' in 2-d, 3-d, and
  118. 4-d, or option 'Qx' in 5-d and higher. These options han-
  119. dle precision problems by merging facets.
  120. With 'C-0', Qhull merges non-convex facets while con-
  121. structing the hull. The remaining facets are clearly con-
  122. vex. With 'Qx', Qhull merges coplanar horizon facets,
  123. flipped facets, concave facets and duplicated ridges. It
  124. merges coplanar facets after constructing the hull. With
  125. 'Qx', coplanar points may be missed, but it appears to be
  126. unlikely.
  127. OPTIONS
  128. To get a list of the most important options, execute
  129. 'qhull' by itself. To get a complete list of options,
  130. execute 'qhull -'. To get a complete, concise list of
  131. options, execute 'qhull .'.
  132. Options can be in any order. Capitalized options take an
  133. argument (except 'PG' and 'F' options). Single letters
  134. are used for output formats and precision constants. The
  135. other options are grouped into menus for other output for-
  136. mats ('F'), Geomview output ('G'), printing ('P'), Qhull
  137. control ('Q'), and tracing ('T').
  138. Main options:
  139. default
  140. Compute the convex hull of the input points.
  141. d Compute the Delaunay triangulation by lifting the
  142. Geometry Center April 2, 1997 3
  143. qhull(1) qhull(1)
  144. input points to a paraboloid. The 'o' option
  145. prints the input points and facets. The 'Ft'
  146. option prints a triangulation. It adds points (the
  147. centrums) to non-simplicial facets.
  148. v Compute the Voronoi vertices via the Delaunay tri-
  149. angulation. The 'p' option prints the Voronoi ver-
  150. tices. The 'o' option prints the Voronoi vertices
  151. and the vertices in each Voronoi region. The first
  152. or zero'th vertex indicates the infinity vertex.
  153. Its coordinates are qh_INFINITE (-10.101). It
  154. indicates unbounded Voronoi regions or degenerate
  155. Delaunay triangles.
  156. Hn,n,...
  157. Compute halfspace intersection about [n,n,0,...].
  158. The input is a set of half-spaces defined in the
  159. same format as 'n', 'Fo', and 'Fi'. Use 'Fp' to
  160. print the intersection points. Use 'Fv' to list
  161. the intersection points for each halfspace. The
  162. other output formats display the dual convex hull.
  163. The point [n,n,n,...] is a feasible point for the
  164. half-spaces, i.e., a point that is inside all of
  165. the halfspaces (Hx+b <= 0). The default coordinate
  166. value is 0.
  167. The input may start with a feasible point. If so,
  168. use 'H' by itself. The input starts with a feasi-
  169. ble point when the first number is the dimension,
  170. the second number is "1", and the coordinates com-
  171. plete a line. The 'FV' option produces a feasible
  172. point for a convex hull.
  173. d Qu Compute the furthest-site Delaunay triangulation
  174. from the upper convex hull. The 'o' option prints
  175. the input points and facets. The 'Ft' option
  176. prints a triangulation. It adds points (the cen-
  177. trums) to non-simplicial facets.
  178. v Qu Compute the furthest-site Voronoi vertices and
  179. regions. The 'p' option prints the Voronoi ver-
  180. tices. The 'o' option prints the Voronoi vertices
  181. and the vertices in each Voronoi region. The first
  182. or zero'th vertex indicates the infinity vertex at
  183. infinity. Its coordinates are qh_INFINITE
  184. (-10.101). It indicates unbounded Voronoi regions
  185. and degenerate Delaunay triangles.
  186. Input/Output options:
  187. f Print out all facets and all fields of each facet.
  188. Geometry Center April 2, 1997 4
  189. qhull(1) qhull(1)
  190. G Output the hull in Geomview format. For imprecise
  191. hulls, Geomview displays the inner and outer hull.
  192. Geomview can also display points, ridges, vertices,
  193. coplanar points, and facet intersections. See
  194. below for a list of options.
  195. For Delaunay triangulations, 'G' displays the cor-
  196. responding paraboloid. For halfspace intersection,
  197. 'G' displays the dual polytope.
  198. i Output the incident vertices for each facet. Qhull
  199. prints the number of facets followed by the ver-
  200. tices of each facet. One facet is printed per
  201. line. The numbers are the 0-relative indices of
  202. the corresponding input points. The facets are
  203. oriented.
  204. In 4-d and higher, Qhull triangulates non-
  205. simplicial facets. Each apex (the first vertex) is
  206. a created point that corresponds to the facet's
  207. centrum. Its index is greater than the indices of
  208. the input points. Each base corresponds to a sim-
  209. plicial ridge between two facets. To print the
  210. vertices without triangulation, use option 'Fv'.
  211. m Output the hull in Mathematica format. Qhull
  212. writes a Mathematica file for 2-d and 3-d convex
  213. hulls and for 2-d Delaunay triangulations. Qhull
  214. produces a list of objects that you can assign to a
  215. variable in Mathematica, for example: "list= <<
  216. <outputfilename> ". If the object is 2-d, it can be
  217. visualized by "Show[Graphics[list]] ". For 3-d
  218. objects the command is "Show[Graphics3D[list]]".
  219. n Output the normal equation for each facet. Qhull
  220. prints the dimension (plus one), the number of
  221. facets, and the normals for each facet. The
  222. facet's offset follows its normal coefficients.
  223. o Output the facets in OFF file format. Qhull prints
  224. the dimension, number of points, number of facets,
  225. and number of ridges. Then it prints the coordi-
  226. nates of the input points and the vertices for each
  227. facet. Each facet is on a separate line. The
  228. first number is the number of vertices. The
  229. remainder are the indices of the corresponding
  230. points. The vertices are oriented in 2-d, 3-d, and
  231. in simplicial facets.
  232. For 2-d Voronoi diagrams, the vertices are sorted
  233. by adjacency, but not oriented. In 3-d and higher,
  234. the Voronoi vertices are sorted by index. See the
  235. 'v' option for more information.
  236. Geometry Center April 2, 1997 5
  237. qhull(1) qhull(1)
  238. p Output the coordinates of each vertex point. Qhull
  239. prints the dimension, the number of points, and the
  240. coordinates for each vertex. With the 'Gc' and
  241. 'Gi' options, it also prints coplanar and interior
  242. points. For Voronoi vertices, it prints the coor-
  243. dinates of each Voronoi vertex.
  244. s Print a summary to stderr. If no output options
  245. are specified at all, a summary goes to stdout.
  246. The summary lists the number of input points, the
  247. dimension, the number of vertices in the convex
  248. hull, the number of facets in the convex hull, the
  249. number of good facets (if 'Pg'), and statistics.
  250. The last two statistics (if needed) measure the
  251. maximum distance from a point or vertex to a facet.
  252. The number in parenthesis (e.g., 2.1x) is the ratio
  253. between the maximum distance and the worst-case
  254. distance due to merging two simplicial facets.
  255. Precision options
  256. An Maximum angle given as a cosine. If the angle
  257. between a pair of facets is greater than n, Qhull
  258. merges one of the facets into a neighbor. If 'n'
  259. is negative, Qhull tests angles after adding each
  260. point to the hull (pre-merging). If 'n' is posi-
  261. tive, Qhull tests angles after constructing the
  262. hull (post-merging). Both pre- and post-merging
  263. can be defined.
  264. Option 'C0' or 'C-0' is set if the corresponding
  265. 'Cn' or 'C-n' is not set. If 'Qx' is set, then 'A-
  266. n' and 'C-n' are checked after the hull is con-
  267. structed and before 'An' and 'Cn' are checked.
  268. Cn Centrum radius. If a centrum is less than n below
  269. a neighboring facet, Qhull merges one of the
  270. facets. If 'n' is negative or '-0', Qhull tests
  271. and merges facets after adding each point to the
  272. hull. This is called "pre-merging". If 'n' is
  273. positive, Qhull tests for convexity after con-
  274. structing the hull ("post-merging"). Both pre- and
  275. post-merging can be defined.
  276. For 5-d and higher, 'Qx' should be used instead of
  277. 'C-n'. Otherwise, most or all facets may be merged
  278. together.
  279. En Maximum roundoff error for distance computations.
  280. Rn Randomly perturb distance computations up to +/- n
  281. * max_coord. This option perturbs every distance,
  282. Geometry Center April 2, 1997 6
  283. qhull(1) qhull(1)
  284. hyperplane, and angle computation. To use time as
  285. the random number seed, use option 'QR-1'.
  286. Vn Minimum distance for a facet to be visible. A
  287. facet is visible if the distance from the point to
  288. the facet is greater than 'Vn'.
  289. Without merging, the default value for 'Vn' is the
  290. round-off error ('En'). With merging, the default
  291. value is the pre-merge centrum ('C-n') in 2-d or
  292. 3--d, or three times that in other dimensions. If
  293. the outside width is specified ('Wn'), the maximum,
  294. default value for 'Vn' is 'Wn'.
  295. Un Maximum distance below a facet for a point to be
  296. coplanar to the facet. The default value is 'Vn'.
  297. Wn Minimum outside width of the hull. Points are
  298. added to the convex hull only if they are clearly
  299. outside of a facet. A point is outside of a facet
  300. if its distance to the facet is greater than 'Wn'.
  301. The normal value for 'Wn' is 'En'. If the user
  302. specifies pre-merging and does not set 'Wn', than
  303. 'Wn' is set to the premerge 'Cn' and maxco-
  304. ord*(1-An).
  305. Additional input/output formats
  306. Fa Print area for each facet. For Delaunay triangula-
  307. tions, the area is the area of the triangle. For
  308. Voronoi vertices, the area is the area of the dual
  309. facet. Use 'PAn' for printing the n largest
  310. facets, and option 'PFn' for printing facets larger
  311. than 'n'.
  312. The area for non-simplicial facets is the sum of
  313. the areas for each ridge to the centrum. Vertices
  314. far below the facet's hyperplane are ignored. The
  315. reported area may be significantly less than the
  316. actual area.
  317. FA Compute the total area and volume for option 's'.
  318. It is an approximation for non-simplicial facets
  319. (see 'Fa').
  320. Fc Print coplanar points for each facet. The output
  321. starts with the number of facets. Then each facet
  322. is printed one per line. Each line is the number
  323. of coplanar points followed by the point ids.
  324. Option 'Qi' includes the interior points. Each
  325. coplanar point (interior point) is assigned to the
  326. facet it is furthest above (resp., least below).
  327. Geometry Center April 2, 1997 7
  328. qhull(1) qhull(1)
  329. FC Print centrums for each facet. The output starts
  330. with the dimension followed by the number of
  331. facets. Then each facet centrum is printed, one
  332. per line.
  333. Fd Read input in cdd format with homogeneous points.
  334. The input starts with comments. The first comment
  335. is reported in the summary. Data starts after a
  336. "begin" line. The next line is the number of
  337. points followed by the dimension+1 and "real" or
  338. "integer". Then the points are listed with a
  339. leading "1" or "1.0". The data ends with an "end"
  340. line.
  341. For halfspaces ('Fd Hn,n,...'), the input format is
  342. the same. Each halfspace starts with its offset.
  343. The sign of the offset is the opposite of Qhull's
  344. convention.
  345. FD Print normals ('n', 'Fo', 'Fi') or points ('p') in
  346. cdd format. The first line is the command line
  347. that invoked Qhull. Data starts with a "begin"
  348. line. The next line is the number of normals or
  349. points followed by the dimension+1 and "real".
  350. Then the normals or points are listed with the
  351. offset before the coefficients. The offset for
  352. points is 1.0. The offset for normals has the
  353. opposite sign. The data ends with an "end" line.
  354. FF Print facets (as in 'f') without printing the
  355. ridges.
  356. Fi Print inner planes for each facet. The inner plane
  357. is below all vertices.
  358. FI Print facet identifiers.
  359. Fm Print number of merges for each facet. At most 511
  360. merges are reported for a facet. See 'PMn' for
  361. printing the facets with the most merges.
  362. Fn Print neighbors for each facet. The output starts
  363. with the number of facets. Then each facet is
  364. printed one per line. Each line is the number of
  365. neighbors followed by an index for each neighbor.
  366. The indices match the other facet output formats.
  367. A negative index indicates an unprinted facet due
  368. to printing only good facets ('Pg'). It is the
  369. negation of the facet's id (option 'FI'). For
  370. example, negative indices are used for facets "at
  371. infinity" in the Delaunay triangulation.
  372. FN Print vertex neighbors or coplanar facet for each
  373. Geometry Center April 2, 1997 8
  374. qhull(1) qhull(1)
  375. point. The first line is the number of points.
  376. Then each point is printed, one per line. If the
  377. point is coplanar, the line is "1" followed by the
  378. facet's id. If the point is not a selected vertex,
  379. the line is "0". Otherwise, each line is the num-
  380. ber of neighbors followed by the corresponding
  381. facet indices (see 'Fn').
  382. Fo Print outer planes for each facet in the same for-
  383. mat as 'n'. The outer plane is above all points.
  384. FO List all options to stderr, including the default
  385. values. Additional 'FO's are printed to stdout.
  386. Fp Print points for halfspace intersections (option
  387. 'Hn,n,...'). Each intersection corresponds to a
  388. facet of the dual polytope. The "infinity" point
  389. [-10.101,-10.101,...] indicates an unbounded
  390. intersection.
  391. FP For each coplanar point ('Qc') print the point id
  392. of the nearest vertex, the point id, the facet id,
  393. and the distance.
  394. FQ Print command used for qhull and input.
  395. Fs Print a summary. The first line consists of the
  396. number of integers ("7"), followed by the dimen-
  397. sion, the number of points, the number of vertices,
  398. the number of facets, the number of vertices
  399. selected for output, the number of facets selected
  400. for output, the number of coplanar points selected
  401. for output.
  402. The second line consists of the number of reals
  403. ("2"), followed by the maxmimum offset to an outer
  404. plane and and minimum offset to an inner plane.
  405. Roundoff is included. Later versions of Qhull may
  406. produce additional integers or reals.
  407. FS Print the size of the hull. The first line con-
  408. sists of the number of integers ("0"). The second
  409. line consists of the number of reals ("2"), fol-
  410. lowed by the total facet area, and the total vol-
  411. ume. Later versions of Qhull may produce addi-
  412. tional integers or reals.
  413. The total volume measures the volume of the inter-
  414. section of the halfspaces defined by each facet.
  415. Both area and volume are approximations for non-
  416. simplicial facets. See option 'Fa'.
  417. Ft Print a triangulation with added points for non-
  418. simplicial facets. The first line is the dimension
  419. Geometry Center April 2, 1997 9
  420. qhull(1) qhull(1)
  421. and the second line is the number of points and the
  422. number of facets. The points follow, one per line,
  423. then the facets follow as a list of point indices.
  424. With option points include the point-at-infinity.
  425. Fv Print vertices for each facet. The first line is
  426. the number of facets. Then each facet is printed,
  427. one per line. Each line is the number of vertices
  428. followed by the corresponding point ids. Vertices
  429. are listed in the order they were added to the hull
  430. (the last one is first).
  431. FV Print average vertex. The average vertex is a fea-
  432. sible point for half-space intersection.
  433. Geomview options
  434. G Produce a file for viewing with Geomview. Without
  435. other options, Qhull displays edges in 2-d, outer
  436. planes in 3-d, and ridges in 4-d. A ridge can be
  437. explicit or implicit. An explicit ridge is a dim-1
  438. dimensional simplex between two facets. In 4-d,
  439. the explicit ridges are triangles. When displaying
  440. a ridge in 4-d, Qhull projects the ridge's vertices
  441. to one of its facets' hyperplanes. Use 'Gh' to
  442. project ridges to the intersection of both hyper-
  443. planes.
  444. Ga Display all input points as dots.
  445. Gc Display the centrum for each facet in 3-d. The
  446. centrum is defined by a green radius sitting on a
  447. blue plane. The plane corresponds to the facet's
  448. hyperplane. The radius is defined by 'C-n' or
  449. 'Cn'.
  450. GDn Drop dimension n in 3-d or 4-d. The result is a
  451. 2-d or 3-d object.
  452. Gh Display hyperplane intersections in 3-d and 4-d.
  453. In 3-d, the intersection is a black line. It lies
  454. on two neighboring hyperplanes (c.f., the blue
  455. squares associated with centrums ('Gc')). In 4-d,
  456. the ridges are projected to the intersection of
  457. both hyperplanes.
  458. Gi Display inner planes in 2-d and 3-d. The inner
  459. plane of a facet is below all of its vertices. It
  460. is parallel to the facet's hyperplane. The inner
  461. plane's color is the opposite (1-r,1-g,1-b) of the
  462. outer plane. Its edges are determined by the ver-
  463. tices.
  464. Geometry Center April 2, 1997 10
  465. qhull(1) qhull(1)
  466. Gn Do not display inner or outer planes. By default,
  467. Geomview displays the precise plane (no merging) or
  468. both inner and output planes (merging). Under
  469. merging, Geomview does not display the inner plane
  470. if the the difference between inner and outer is
  471. too small.
  472. Go Display outer planes in 2-d and 3-d. The outer
  473. plane of a facet is above all input points. It is
  474. parallel to the facet's hyperplane. Its color is
  475. determined by the facet's normal, and its edges are
  476. determined by the vertices.
  477. Gp Display coplanar points and vertices as radii. A
  478. radius defines a ball which corresponds to the
  479. imprecision of the point. The imprecision is the
  480. maximum of the roundoff error, the centrum radius,
  481. and maxcoord * (1-An). It is at least 1/20'th of
  482. the maximum coordinate, and ignores post-merging if
  483. pre-merging is done.
  484. Gr Display ridges in 3-d. A ridge connects the two
  485. vertices that are shared by neighboring facets.
  486. Ridges are always displayed in 4-d.
  487. Gt A 3-d Delaunay triangulation looks like a convex
  488. hull with interior facets. Option 'Gt' removes the
  489. outside ridges to reveal the outermost facets. It
  490. automatically sets options 'Gr' and 'GDn'.
  491. Gv Display vertices as spheres. The radius of the
  492. sphere corresponds to the imprecision of the data.
  493. See 'Gp' for determining the radius.
  494. Print options
  495. PAn Only the n largest facets are marked good for
  496. printing. Unless 'PG' is set, 'Pg' is automati-
  497. cally set.
  498. Pdk:n Drop facet from output if normal[k] <= n. The
  499. option 'Pdk' uses the default value of 0 for n.
  500. PDk:n Drop facet from output if normal[k] >= n. The
  501. option 'PDk' uses the default value of 0 for n.
  502. PFn Only facets with area at least 'n' are marked good
  503. for printing. Unless 'PG' is set, 'Pg' is automat-
  504. ically set.
  505. Pg Print only good facets. A good facet is either
  506. visible from a point (the 'QGn' option) or includes
  507. a point (the 'QVn' option). It also meets the
  508. Geometry Center April 2, 1997 11
  509. qhull(1) qhull(1)
  510. requirements of 'Pdk' and 'PDk' options. Option
  511. 'Pg' is automatically set for options 'PAn' and
  512. 'PFn'.
  513. PG Print neighbors of good facets.
  514. PMn Only the n facets with the most merges are marked
  515. good for printing. Unless 'PG' is set, 'Pg' is
  516. automatically set.
  517. Po Force output despite precision problems. The maxi-
  518. mum outside distance is not determined
  519. (qh_check_maxout). Verify ('Tv') does not check
  520. coplanar points. Flipped facets are reported and
  521. concave facets are counted. If 'Po' is used,
  522. points are not partitioned into flipped facets and
  523. a flipped facet is always visible to a point.
  524. Also, if an error occurs before the completion of
  525. Qhull and tracing is not active, 'Po' outputs a
  526. neighborhood of the erroneous facets (if any).
  527. Pp Do not report precision problems.
  528. Qhull control options
  529. Qbk:0Bk:0
  530. Drop dimension k from the input points. This
  531. allows the user to take convex hulls of sub-
  532. dimensional objects. It happens before the Delau-
  533. nay and Voronoi transformation.
  534. QbB Scale the input points to fit the unit cube. After
  535. scaling, the lower bound will be -0.5 and the upper
  536. bound +0.5 in all dimensions. For Delaunay and
  537. Voronoi diagrams, scaling happens after projection
  538. to the paraboloid. Under precise arithmetic, scal-
  539. ing does not change the topology of the convex
  540. hull.
  541. Qbb Scale the last coordinate to [0, m] where m is the
  542. maximum absolute value of the other coordinates.
  543. For Delaunay and Voronoi diagrams, scaling happens
  544. after projection to the paraboloid. It reduces
  545. roundoff error for inputs with integer coordinates.
  546. Under precise arithmetic, scaling does not change
  547. the topology of the convex hull.
  548. Qbk:n Scale the k'th coordinate of the input points.
  549. After scaling, the lower bound of the input points
  550. will be n. 'Qbk' scales to -0.5.
  551. QBk:n Scale the k'th coordinate of the input points.
  552. After scaling, the upper bound will be n. 'QBk'
  553. Geometry Center April 2, 1997 12
  554. qhull(1) qhull(1)
  555. scales to +0.5.
  556. Qc Keep coplanar points with the nearest facet. Out-
  557. put formats 'p', 'f', 'Gp', 'Fc', 'FN', and 'FP'
  558. will print the points.
  559. Qf Partition points to the furthest outside facet.
  560. Qg Only build good facets. With the 'Qg' option,
  561. Qhull will only build those facets that it needs to
  562. determine the good facets in the output. See
  563. 'QGn', 'QVn', and 'PdD' for defining good facets,
  564. and 'Pg' and 'PG' for printing good facets and
  565. their neighbors.
  566. QGn A facet is good (see 'Qg' and 'Pg') if it is visi-
  567. ble from point n. If n < 0, a facet is good if it
  568. is not visible from point n. Point n is not added
  569. to the hull (unless 'TCn' or 'TPn'). With rbox,
  570. use the 'Pn,m,r' option to define your point; it
  571. will be point 0 (QG0).
  572. Qi Keep interior points with the nearest facet. Out-
  573. put formats 'p', 'f', 'Gp', 'FN', 'FP', and 'Fc'
  574. will print the points.
  575. Qm Only process points that would otherwise increase
  576. max_outside. Other points are treated as coplanar
  577. or interior points.
  578. Qr Process random outside points instead of furthest
  579. ones. This makes Qhull equivalent to the random-
  580. ized incremental algorithms. CPU time is not
  581. reported since the randomization is inefficient.
  582. QRn Randomly rotate the input points. If n=0, use time
  583. as the random number seed. If n>0, use n as the
  584. random number seed. If n=-1, don't rotate but use
  585. time as the random number seed. For Delaunay tri-
  586. angulations ('d' and 'v'), rotate about the last
  587. axis.
  588. Qs Search all points for the initial simplex.
  589. Qv Test vertex neighbors for convexity after post-
  590. merging. To use the 'Qv' option, you also need to
  591. set a merge option (e.g., 'Qx' or 'C-0').
  592. QVn A good facet (see 'Qg' and 'Pg') includes point n.
  593. If n<0, then a good facet does not include point n.
  594. The point is either in the initial simplex or it is
  595. the first point added to the hull. Option 'QVn'
  596. may not be used with merging.
  597. Geometry Center April 2, 1997 13
  598. qhull(1) qhull(1)
  599. Qx Perform exact merges while building the hull. The
  600. "exact" merges are merging a point into a coplanar
  601. facet (defined by 'Vn', 'Un', and 'C-n'), merging
  602. concave facets, merging duplicate ridges, and merg-
  603. ing flipped facets. Coplanar merges and angle
  604. coplanar merges ('A-n') are not performed. Concav-
  605. ity testing is delayed until a merge occurs.
  606. After the hull is built, all coplanar merges are
  607. performed (defined by 'C-n' and 'A-n'), then post-
  608. merges are performed (defined by 'Cn' and 'An').
  609. Qz Add a point "at infinity" that is above the
  610. paraboloid for Delaunay triangulations and Voronoi
  611. vertices. This reduces precision problems and
  612. allows the triangulation of cospherical points.
  613. Qhull experiments and speedups
  614. Q0 Turn off pre-merging as a default option. With
  615. 'Q0'/'Qx' and without explicit pre-merge options,
  616. Qhull ignores precision issues while constructing
  617. the convex hull. This may lead to precision
  618. errors. If so, a descriptive warning is generated.
  619. Q1 With 'Q1', Qhull sorts merges by type (coplanar,
  620. angle coplanar, concave) instead of by angle.
  621. Q2 With 'Q2', Qhull merges all facets at once instead
  622. of using independent sets of merges and then
  623. retesting.
  624. Q3 With 'Q3', Qhull does not remove redundant ver-
  625. tices.
  626. Q4 With 'Q4', Qhull avoids merges of an old facet into
  627. a new facet.
  628. Q5 With 'Q5', Qhull does not correct outer planes at
  629. the end. The maximum outer plane is used instead.
  630. Q6 With 'Q6', Qhull does not pre-merge concave or
  631. coplanar facets.
  632. Q7 With 'Q7', Qhull processes facets in depth-first
  633. order instead of breadth-first order.
  634. Q8 With 'Q8' and merging, Qhull does not retain near-
  635. interior points for adjusting outer planes. 'Qc'
  636. will probably retain all points that adjust outer
  637. planes.
  638. Q9 With 'Q9', Qhull processes the furthest of all
  639. Geometry Center April 2, 1997 14
  640. qhull(1) qhull(1)
  641. outside sets at each iteration.
  642. Trace options
  643. Tn Trace at level n. Qhull includes full execution
  644. tracing. 'T-1' traces events. 'T1' traces the
  645. overall execution of the program. 'T2' and 'T3'
  646. trace overall execution and geometric and topologi-
  647. cal events. 'T4' traces the algorithm. 'T5'
  648. includes information about memory allocation and
  649. Gaussian elimination.
  650. Tc Check frequently during execution. This will catch
  651. most inconsistency errors.
  652. TCn Stop Qhull after building the cone of new facets
  653. for point n. The output for 'f' includes the cone
  654. and the old hull. See also 'TVn'.
  655. TFn Report progress whenever more than n facets are
  656. created During post-merging, 'TFn' reports progress
  657. after more than n/2 merges.
  658. TPn Turn on tracing when point n is added to the hull.
  659. Ts Collect statistics and print to stderr at the end
  660. of execution.
  661. Tv Verify the convex hull. This checks the topologi-
  662. cal structure, facet convexity, and point inclu-
  663. sion. If precision problems occurred, facet con-
  664. vexity is tested whether or not 'Tv' is selected.
  665. Option 'Tv' does not check point inclusion if forc-
  666. ing output with 'Po', or if 'Q5' is set.
  667. For point inclusion testing, Qhull verifies that
  668. all points are below all outer planes
  669. (facet->maxoutside). Point inclusion is exhaustive
  670. if merging or if the facet-point product is small
  671. enough; otherwise Qhull verifies each point with a
  672. directed search (qh_findbest).
  673. Point inclusion testing occurs after producing out-
  674. put. It prints a message to stderr unless option
  675. 'Pp' is used. This allows the user to interrupt
  676. Qhull without changing the output.
  677. TVn Stop Qhull after adding point n. If n < 0, stop
  678. Qhull before adding point n. Output shows the hull
  679. at this time. See also 'TCn'
  680. TMn Turn on tracing at n'th merge.
  681. Geometry Center April 2, 1997 15
  682. qhull(1) qhull(1)
  683. TWn Trace merge facets when the width is greater than
  684. n.
  685. Tz Redirect stderr to stdout.
  686. BUGS
  687. Please report bugs to Brad Barber at
  688. qhull_bug@geom.umn.edu.
  689. If Qhull does not compile, it is due to an incompatibility
  690. between your system and ours. The first thing to check is
  691. that your compiler is ANSI standard. If it is, check the
  692. man page for the best options, or find someone to help
  693. you. If you locate the cause of your problem, please send
  694. email since it might help others.
  695. If Qhull compiles but crashes on the test case (rbox D4),
  696. there's still incompatibility between your system and
  697. ours. Typically it's been due to mem.c and memory align-
  698. ment. You can use qh_NOmem in mem.h to turn off memory
  699. management. Please let us know if you figure out how to
  700. fix these problems.
  701. If you do find a problem, try to simplify it before
  702. reporting the error. Try different size inputs to locate
  703. the smallest one that causes an error. You're welcome to
  704. hunt through the code using the execution trace as a
  705. guide. This is especially true if you're incorporating
  706. Qhull into your own program.
  707. When you do report an error, please attach a data set to
  708. the end of your message. This allows us to see the error
  709. for ourselves. Qhull is maintained part-time.
  710. E-MAIL
  711. Please send correspondence to qhull@geom.umn.edu and
  712. report bugs to qhull_bug@geom.umn.edu. Let us know how
  713. you use Qhull. If you mention it in a paper, please send
  714. the reference and an abstract.
  715. If you would like to get Qhull announcements (e.g., a new
  716. version) and news (any bugs that get fixed, etc.), let us
  717. know and we will add you to our mailing list. If you
  718. would like to communicate with other Qhull users, we will
  719. add you to the qhull_users alias. For Internet news about
  720. geometric algorithms and convex hulls, look at
  721. comp.graphics.algorithms and sci.math.num-analysis
  722. SEE ALSO
  723. rbox(1)
  724. Geometry Center April 2, 1997 16
  725. qhull(1) qhull(1)
  726. Barber, C. B., D.P. Dobkin, and H.T. Huhdanpaa, "The
  727. Quickhull Algorithm for Convex Hulls," ACM Trans. on Math-
  728. ematical Software, Dec. 1996.
  729. http://www.acm.org/pubs/toc/Abstracts/toms/235821.html
  730. Clarkson, K.L., K. Mehlhorn, and R. Seidel, "Four results
  731. on randomized incremental construction," Computational
  732. Geometry: Theory and Applications, vol. 3, p. 185-211,
  733. 1993.
  734. Preparata, F. and M. Shamos, Computational Geometry,
  735. Springer-Verlag, New York, 1985.
  736. AUTHORS
  737. C. Bradford Barber Hannu Huhdanpaa
  738. bradb@geom.umn.edu hannu@geom.umn.edu
  739. c/o The Geometry Center
  740. University of Minnesota
  741. 1300 South Second Street, Suite 500
  742. Minneapolis, MN 55454
  743. ACKNOWLEDGEMENTS
  744. A special thanks to Albert Marden, Victor Milenkovic, the
  745. Geometry Center, and Harvard University for supporting
  746. this work.
  747. The software was developed under National Science Founda-
  748. tion grants NSF/DMS-8920161 and NSF-CCR-91-15793 750-7504.
  749. David Dobkin quided the original work at Princeton Univer-
  750. sity. If you find it useful, please let us know.
  751. The Geometry Center is supported by grant DMS-8920161 from
  752. the National Science Foundation, by grant DOE/DE-
  753. FG02-92ER25137 from the Department of Energy, by the Uni-
  754. versity of Minnesota, and by Minnesota Technology, Inc.
  755. Qhull is available by anonymous ftp from geom.umn.edu. To
  756. retrieve a copy: ftp geom.umn.edu, user: anonymous, cd
  757. pub/software, get qhull.tar.Z, quit, uncompress
  758. qhull.tar.Z, tar xf qhull.tar, cd qhull, make
  759. Geometry Center April 2, 1997 17