The goal of this project is to implement Zheg-Ball patches with 3, 5 and 6 sides.
Zheng-Ball surfaces patches are designed to fill odd shaped gaps between tensor-product bezier patch. They are are defined by weighting functions over the net of control points. The nice property they have is that they have is their edges are bezier curves and their cross boundry derivatives are easily found (and set).
Zheng-Ball patches are based on symmetric domains. Symetric domains
have many nice properties, but many very bad properties as well. Speaking
from experience it can be quite difficult to calculate all values of the
domain from the two given ones, and in many
cases impossible. For example, for the five and size element domains
described in the paper, one cannot compute all elements of the domain from
the adjacent pair, [1,1].
I have writeen two programs, whose usage is described below
makeiv
numSides degree numberOfControlPoints
control points specified in concentric, counter-clockwise
circles from outside in.
command line usage
makeiv [filename [tesselation]]
tesselation is an integer, with larger numbers giving more dense
tesselations. writes to filename.iv
if no filename is specified defaults to default5
tesselation defaults to 4.
editor
usage:
left mouse (no selection) x,y translation of patch
middle mouse (no selection) z translation of patch
right mouse rotation of patch
left mouse (with shift) select control point
left mouse (with selection) translate CV in view frame
middle mouse (with selection) translate CV in perpindicular
to view frame
Use the file menu to load and save files (only one
saved file is supported at this time, because of the lack of an easy TK
file selection widget.
Use the mode menu to load default patches of different
numbers of sides. Currently only cubic patches are supported.
References