QisBool Library Header

Sample: Fracturing Polygons into Trapezoids

A sample calling application, trapezoid64.exe, reads polygons from a file and then fractures them into trapezoids. The resulting trapezoids are written back out to a ASCII file.

flow of sample trap fracture

The Input Polygon File

For the input polygon data we are using a simple ASCII format. It looks like this:

LIBRARY RDL_1.GBS unit:MM grid:100000   header, units and grid
BOUNDARY 1 0         start of boundary
125500 110217        vertex coord
125500 110200
140500 118500
140735 118518
140964 118573
141181 118663
141382 118786
141561 118939
141714 119118
141837 119319
141927 119536
141982 119765
142000 120000
141982 120235
141927 120464
141837 120681
ENDEL                end of boundary
125500 70217
125500 70200
140500 78500
140735 78518
140964 78573
141181 78663
141382 78786
141561 78939
141714 79118
141837 79319
141927 79536
141982 79765
142000 80000

A boundary may have hundreds or even thousands of vertices. The boundary shall not self-intersect but it is allowed to be "re-entrant". Boundaries may overlap.

The Output Polygon File

In syntax the output polygon file will look the same. However each polygon will have exactly 5 vertices (the first and last vertex are - by definition - identical.) This is because each output polygon is a trapezoid with 4 corners.

The trapezoids will "cover" exactly the same surface as the input boundaries.

Command Line Syntax

The trapezoid64.exe program is run from a command line with the following arguments:



-o:output_file (in DXF format)


convex options are one of: [none | x | full | trap]

Note - since it is difficult to view the polygons in their ASCII format, the trapezoid64.exe program takes the output polygons from the library and converts them into an AutoCAD DXF file.

Fracture Options

Here is what the input polygons look like:


and here is what each of the options produces:

Convex in X


Convex Full (Both X and Y)


To see in more detail the difference between convex in X and convex full (both X and Y) we zoom in on one of the polygons where there is a noticeable difference.

comparison between convex-in-x and convex-full


Trapezoids have 4 vertices and parallel edges on top and bottom. (Note: a triangle can be considered as a trapezoid where two of the coordinates are identical.)


If you zoom in you can see that each polygon is a trapezoid.


Source Code

Source code in C++ is provided for the the trapezoid64 application. This will aid the programmer in understanding the use of the QISBool library.

Programmer's Corner

What's in the release


Sample Application

Glossary of Terms



  Download Price Revision History