?? unix.c
字號:
Gv - vertices as spheres\n\
Gi - inner planes only\n\
Gn - no planes\n\
Go - outer planes only\n\
Gc - centrums\n\
Gh - hyperplane intersections\n\
Gr - ridges\n\
GDn - drop dimension n in 3-d and 4-d output\n\
Gt - transparent outer ridges to view 3-d Delaunay\n\
Popts- Print options:\n\
PAn - keep n largest facets by area\n\
Pdk:n - drop facet if normal[k] <= n (default 0.0)\n\
PDk:n - drop facet if normal[k] >= n\n\
Pg - print good facets (needs 'QGn' or 'QVn')\n\
PFn - keep facets whose area is at least n\n\
PG - print neighbors of good facets\n\
PMn - keep n facets with most merges\n\
Po - force output. If error, output neighborhood of facet\n\
Pp - do not report precision problems\n\
\n\
. - list of all options\n\
- - one line descriptions of all options\n\
";
/* for opts, don't assign 'e' or 'E' to a flag (already used for exponent) */
/*-<a href="qh-c.htm#qhull"
>-------------------------------</a><a name="prompt2">-</a>
qh_prompt2
synopsis for qhull
*/
char qh_prompt2[]= "\n\
qhull- compute convex hulls and related structures. %s\n\
input (stdin): dimension, number of points, point coordinates\n\
comments start with a non-numeric character\n\
halfspace: use dim plus one and put offsets after coefficients\n\
\n\
options (qh-opt.htm):\n\
d - Delaunay triangulation by lifting points to a paraboloid\n\
v - Voronoi diagram from the Delaunay triangulation\n\
H1,1 - Halfspace intersection about [1,1,0,...] via polar duality\n\
d Qu - furthest-site Delaunay triangulation (upper convex hull)\n\
v Qu - furthest-site Voronoi diagram\n\
QJ - randomly joggle input by a small amount\n\
. - concise list of all options\n\
- - one-line description of all options\n\
\n\
output options (subset):\n\
FA - compute total area and volume\n\
Fx - extreme points (convex hull vertices)\n\
G - Geomview output (2-d, 3-d and 4-d)\n\
Fp - halfspace intersections\n\
m - Mathematica output (2-d and 3-d)\n\
n - normals with offsets\n\
o - OFF file format (if Voronoi, outputs regions)\n\
TO file- output results to file, may be enclosed in single quotes\n\
f - print all fields of all facets\n\
s - summary of results (default)\n\
Tv - verify result: structure, convexity, and point inclusion\n\
p - vertex coordinates\n\
i - vertices incident to each facet\n\
\n\
examples:\n\
rbox c d D2 | qhull Qc s f Fx | more rbox 1000 s | qhull Tv s FA\n\
rbox 10 D2 | qhull d QJ s i TO result rbox 10 D2 | qhull v QJ p\n\
rbox 10 D2 | qhull d Qu QJ m rbox 10 D2 | qhull v Qu QJ o\n\
rbox c | qhull n rbox c | qhull FV n | qhull H Fp\n\
rbox d D12 | qhull QR0 FA rbox c D7 | qhull FA TF1000\n\
rbox y 1000 W0 | qhull rbox 10 | qhull v QJ o Fv\n\
\n\
";
/* for opts, don't assign 'e' or 'E' to a flag (already used for exponent) */
/*-<a href="qh-c.htm#qhull"
>-------------------------------</a><a name="prompt3">-</a>
qh_prompt3
concise prompt for qhull
*/
char qh_prompt3[]= "\n\
Qhull %s.\n\
Except for 'F.' and 'PG', upper-case options take an argument.\n\
\n\
delaunay voronoi Halfspace facet_dump Geomview \n\
incidences mathematica normals points off_file\n\
summary\n\
Farea FArea-total Fcoplanars FCentrums Fd-cdd-in\n\
FD-cdd-out FFacet-xridge Finner FIds Fmerges\n\
Fneighbors FNeigh-vertex Fouter FOptions Fpoint-intersect\n\
FPoint_near FQhull Fsummary FSize\n\
Ftriangles Fvertices Fvoronoi FVertex-ave Fxtremes\n\
Gvertices Gpoints Gall_points Gno_planes Ginner\n\
Gcentrums Ghyperplanes Gridges Gouter GDrop_dim\n\
Gtransparent PArea-keep Pdrop d0:0D0 Pgood PFacet_area_keep\n\
PGood_neighbors PMerge-keep Poutput_forced Pprecision_not\n\
QbBound 0:0.5 QbB-scale-box Qbb-scale-last Qcoplanar\n\
Qfurthest Qgood_only QGood_point Qinterior Qmax_out\n\
QJoggle Qrandom QRotate Qsearch_1st QupperDelaunay\n\
QVertex_good Qvneighbors Qxact_merge Qzinfinite Q0_no_premerge\n\
Q1_no_angle Q2_no_independ Q3_no_redundant Q4_no_old Q5_no_check_out\n\
Q6_no_concave Q7_depth_first Q8_no_near_in Q9_pick_furthest T4_trace\n\
Tcheck_often Tstatistics Tverify Tz_stdout TFacet_log\n\
TPoint_trace TMerge_trace TOoutput_file TRerun TWide_trace\n\
TVertex_stop TCone_stop Angle_max Centrum_size\n\
Error_round Random_dist Visible_min Ucoplanar_max Wide_outside\n\
";
/*-<a href="qh-c.htm#global"
>-------------------------------</a><a name="main">-</a>
main( argc, argv )
processes the command line, calls qhull() to do the work, and exits
design:
initializes data structures
reads points
finishes initialization
computes convex hull and other structures
checks the result
writes the output
frees memory
*/
int main(int argc, char *argv[]) {
int curlong, totlong; /* used !qh_NOmem */
int exitcode, numpoints, dim;
coordT *points;
boolT ismalloc;
#if __MWERKS__ && __POWERPC__
char inBuf[BUFSIZ], outBuf[BUFSIZ], errBuf[BUFSIZ];
SIOUXSettings.showstatusline= false;
SIOUXSettings.tabspaces= 1;
SIOUXSettings.rows= 40;
if (setvbuf (stdin, inBuf, _IOFBF, sizeof(inBuf)) < 0 /* w/o, SIOUX I/O is slow*/
|| setvbuf (stdout, outBuf, _IOFBF, sizeof(outBuf)) < 0
|| (stdout != stderr && setvbuf (stderr, errBuf, _IOFBF, sizeof(errBuf)) < 0))
fprintf (stderr, "qhull internal warning (main): could not change stdio to fully buffered.\n");
argc= ccommand(&argv);
#endif
if ((argc == 1) && isatty( 0 /*stdin*/)) {
fprintf(stdout, qh_prompt2, qh_version);
exit(qh_ERRnone);
}
if (argc > 1 && *argv[1] == '-' && !*(argv[1]+1)) {
fprintf(stdout, qh_prompta, qh_version, qh_DEFAULTbox,
qh_promptb, qh_promptc, qh_promptd, qh_prompte);
exit(qh_ERRnone);
}
if (argc >1 && *argv[1] == '.' && !*(argv[1]+1)) {
fprintf(stdout, qh_prompt3, qh_version);
exit(qh_ERRnone);
}
qh_init_A (stdin, stdout, stderr, argc, argv); /* sets qh qhull_command */
exitcode= setjmp (qh errexit); /* simple statement for CRAY J916 */
if (!exitcode) {
qh_initflags (qh qhull_command);
points= qh_readpoints (&numpoints, &dim, &ismalloc);
qh_init_B (points, numpoints, dim, ismalloc);
qh_qhull();
qh_check_output();
qh_produce_output();
if (qh VERIFYoutput && !qh FORCEoutput && !qh STOPpoint && !qh STOPcone)
qh_check_points();
exitcode= qh_ERRnone;
}
qh NOerrexit= True; /* no more setjmp */
#ifdef qh_NOmem
qh_freeqhull( True);
#else
qh_freeqhull( False);
qh_memfreeshort (&curlong, &totlong);
if (curlong || totlong)
fprintf (stderr, "qhull internal warning (main): did not free %d bytes of long memory (%d pieces)\n",
totlong, curlong);
#endif
return exitcode;
} /* main */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -