?? geom.html
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Geometric Objects in QMG</title></head><body BGCOLOR="#E0FFE0" TEXT="#000000" LINK = "#0080C0" VLINK = "#004060" ALINK = "#FF0000" ><center><table><tr><td><a href="qmg2_0_home.html"><img src=logo1.jpg alt="QMG logo"></a></td><td><h1>Geometric Objects in QMG</h1></td></table></center>The QMG package supports two datatypes: <em><a href="#breps">breps</a></em> and <em><a href="#meshes">simplicialcomplexes</a></em>. Simplicialcomplexes are also called “meshes.”<p>Before plunging into the details of geometric representation,consider using some of the simpler ways to create breps.For a simple way to create two-dimensional breps, consider the<code><a href="ref.html#gm_cpoly">gm_cpoly</a></code>routine. For a simple way to create three-dimensional polyhedralbreps,consider using <a href="ref.html#gmoffread">OFF format</a>.<h2><a name="breps">Overview of breps</a></h2>A <em>brep</em> is a geometric object that is specified by itsboundary faces (“brep” is short for “boundary representation”). Manypeople pronounce brep like “bee-rep”. Breps have different internalrepresentations in Matlab versus Tcl/Tk, but the two representationhave essentially the same data.Below we describe thedetails of the internal representations, but first we describedata present in a brep.<p>The next few paragraphs cover three-dimensionalbreps whose intrinsic dimension is also three. Belowwe turn to lower-dimensional breps.<p>A brep is composed of <em>topological entities</em> which arealso sometimes called <em>faces</em> for short. A brep hasfour types of faces: <em>chambers</em>, <em>surfaces</em>,<em>edges</em> and <em>vertices</em>. These faces have dimensions 3, 2, 1, 0 respectively. The boundary of each face is definedby a list of faces of one lower dimension. In other words, theboundary of a chamber is one or more surfaces, the boundary ofa surface is zero or more edges, and the boundary of an edgeis zero or more vertices.<p>The topological hierarchy for a QMG 2.0 object must have the followingproperty: if two faces have a common point, then their intersectionmust be a common topological subentity. For example, a cube is boundedby six squares. Two adjacent squares must have a common topologicaledge.<p>Breps in QMG 2.0 must be finite and must be watertight. <em>Watertight</em>has the following meaning in 3D:for each chamber <em>C</em>, whenall the edges that occur as boundaries of surfaces that occuras boundaries of <em>C</em> are enumerated, each edge must occur an even numberof times (counting multiplicity).Similarly, for each surface <em>S</em>, when all the vertices that occuras boundaries of edges that occur as boundaries of <em>S</em> are enumerated,each vertex must occur an even number of times in this enumeration.For example, this rule means that for the cube mentionedin the last paragraph, it is not permissible for two surfaces that sharea common edge to own separate copies of that edge under two differentnames.<p>Each topological entity, except for a chamber,is composed of geometric entities. In particular, a surface is composedof <em>Bezier patches</em>, an edge is composed of <em>Bezier curves</em>,and a vertex has a <em>point</em> associated with it.<p>Bezier patches of two types are supported: triangular patchesand tensor product patches. See G. Farin, <em>Curves and Surfacesfor Geometric Design</em> for the definition of the two kinds ofBezier patches. Here arethe rules governing Bezier patches and curves.<ul><li>The parametric domain for a triangular patch is the {(<em>u</em>,<em>v</em>):<em>u</em>+<em>v</em>≤1; <em>u</em>≥0; <em>v</em>≥0}. The parametric domain for a quadrilateral patch is {(<em>u</em>,<em>v</em>): 0≤<em>u</em>,<em>v</em>≤1}.The parametric domain for a curve is [0,1].<li>The control points for a curve are numbered so that <em>p</em>(0) is the first-listed (indexed 0) control point and <em>p</em>(1) is thelast-listed (indexed <em>d</em>), where <em>p</em> is the degree-<em>d</em> parametric function.<li>The control points for a triangularpatch are ordered according to the following example for a degree-3 patch:<p><center><table><tr><td><strong><em>u</em>=0,<em>v</em>=1</strong></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td>0</td><td></td><td></td><td></td></tr><tr><td></td><td>1</td><td>2</td><td></td><td></td></tr><tr><td></td><td>3</td><td>4</td><td>5</td><td></td></tr><tr><td></td><td>6</td><td>7</td><td>8</td><td>9</td></tr><tr><td><strong><em>u</em>=0,<em>v</em>=0</strong></td><td></td><td></td><td></td><td></td><td><strong><em>u</em>=1,<em>v</em>=0</strong></td></tr></table></center><li>Control points for a quadrilateral patch are numbered according tothe following degree-(3,2) example:<p><center><table><tr><td><strong><em>u</em>=0,<em>v</em>=1</strong></td><td></td><td></td><td></td><td></td><td><strong><em>u</em>=1,<em>v</em>=1</strong></td></tr><tr><td></td><td>8</td><td>9</td><td>10</td><td>11</td><td></td></tr><tr><td></td><td>4</td><td>5</td><td>6</td><td>7</td><td></td></tr><tr><td></td><td>0</td><td>1</td><td>2</td><td>3</td><td></td></tr><tr><td><strong><em>u</em>=0,<em>v</em>=0</strong></td><td></td><td></td><td></td><td></td><td><strong><em>u</em>=1,<em>v</em>=0</strong></td></tr></table></center><li>Patches and curves must be nondegenerate, meaning that the parametric function must be injective on its domain, and thatthe derivative must be full-rank at every point of thedomain. (Note that certain domains, such as cones, havepoints on curved surfaces where the derivativebecomes low-rank. Such domains cannot be representedwith order higher than first in QMG 2.0.)<li>If two distinct patches have a common point, then the common point musteither be a vertex, or else the two patches must have a commonbounding curve.<li>Two patches are assumed to be adjacent along an edge if the twoextreme control points of the common edge are in common. Thus,adjacency between patches is determined with a purely combinatorial test.Patches of different degrees can be adjacent. (See <code>test9</code> for an example of a degree-1 patch againsta degree-3 patch.)Nonetheless,there cannot be any gap between the patches, meaning that theparametric function of thehigher-degree neighbor must degenerate to a lower degree along the common edge.This requirement also means that two distinctBezier curves cannot have both endpoints in common with eachother.<li>The dihedral angle between two adjacent patches may not be zeroat any point along their common edge.</ul><p>Rules concerning the relationship between topological entitiesand geometric entities are as follows:<ul><li>The topological boundary of a face <em>F</em> must be made up ofentities that are exactly the boundary of the geometric entities making up <em>F</em>. For example, a surfaceis shaped like a square with a small hole or slit in themiddle cannot have a single quadrilateralpatch as its only geometric entity.<li>Faces must be orientable, i.e., there must be a globally consistent wayto orient the patches of a face. In particular, a face shapedlike a Moebius strip is not allowed.<li>Faces are supposed to be <em>G</em><sup>1</sup> (meaning that thenormal varies continuously on the topological entity, even as patch or curve boundaries are traversed). But small deviationsfrom <em>G</em><sup>1</sup> are permitted.For example,a topological surface composed of noncoplanar lineartriangles is allowed, as long as the dihedral anglesbetween neighboring triangles are near 180 degrees.See the <a href="meshgen.html#curvecontrol"><code>curvecontrol</code></a> optionto the mesh generator.<li>In QMG 2.0, toplogical faces must be connected.</ul><p>In QMG, each face is allowed to have property-value pairs. This isa list of pairs of strings. The first string in each pair is the propertyname, and the second string is the value of that property. For example, surfaces canhave a <strong>color</strong> property that indicates their colorto be used by graphics routines. Property names are case-insensitive, e.g., <strong>color</strong> and<strong>CoLOR</strong> are not distinguished.The brep itself can haveproperty-value pairs that apply to the whole brep. One importantglobal property is <strong>geo_global_id</strong>. The corresponding valuefor this property is intended to be a universally unique ID stringfor the brep. In QMG 2.0, there is no system for generating theseID strings, but some of the routines like <a href="ref.html#gmchecktri"><code>gmchecktri</code></a>check them.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -