SIAGA: Geometric Modeling

Seven pictures from Applied Algebra and Geometry: Picture #5

The Society for Industrial and Applied Mathematics, SIAM, has recently released a journal of Applied Algebra and Geometry called SIAGA. See here for more information on the new journal.

The poster for the journal features seven pictures. In this blog post I will talk about the fifth picture, on the subject of Geometric Modeling. In the first section of this post, “The Context”, I’ll set the mathematical scene. In the second section, “The Picture”, I’ll talk about this particular image.


The Context

Geometric Modeling is an area of applied mathematics in which piecewise polynomials are used to build computer models for depicting and describing shapes in space.

One tool that is used for such modeling is a parametric curve called a Bézier curve. They are named after the French engineer Pierre Bézier who worked in the automotive industry (like Charles Wampler from blog post number 2).

A Bézier curve models smooth motion through time or space. Each one is defined by a number of control points: points which specify its shape and location. This make them easy to manipulate on a computer interface: changing the location of the control points causes a reliable change in the curve.

A collection of d+1 control points P_0, \ldots, P_d defines a Bézier curve of degree d. The simplest example is when the degree is one, and we have two control points P_0 and P_1. In this case, the Bézier curve is the line that connects the two points
B(t) = (1-t) P_0 + t P_1
for t between 0 and 1. A degree two example is given by
B(t) = (1-t)^2 P_0 + 2t(1-t) P_1 + t^2 P_2
and in general we have
B(t) = \sum_{i = 0}^d {{d \choose i}} {(1-t)}^{d-i} t^i P_i .

A Bézier curve has a ‘control polygon’ associated to its control points, which is found by taking the line segments connecting adjacent control points. The convex hull of this control polygon contains the curve. The control polygon has many other useful properties for example in approximation of the curve.

The Picture

This picture shows a generalization of the Bézier curves described above to a two-dimensional Bézier surface. It is from the paper “Toric Degenerations of Bézier Patches” by García-Puente, Sottile and Zhu (2010).

It is very useful for applications to have a nice way to make smooth two-dimensional surfaces. For example they have been used in the design for parts of a car.

A Bézier surface is defined in terms of a collection of control points in three-dimensional space
\{ P_{0,0}, \ldots, P_{d_1, d_2} \}
which now are indexed by two indices rather than one. It is given parametrically by
B(t_1, t_2) = \sum_{i_1 = 0}^{d_1} \sum_{i_2 = 0}^{d_2} \left( {{d_1 \choose i_1}} {(1-t_1)}^{d_1-i_1} t_1^{i_1} \right) \left( {{d_2 \choose i_2}} {(1-t_2)}^{d_2-i_2} t_2^{i_2} \right) P_{i_1, i_2} .
A list of (d_1 + 1)(d_2 + 1) control points gives a surface of degree d_1 d_2 via this process.

The control points are shown in blue. The Bézier surface is shown below them in green. We now have a two-dimensional analogue of the control polygon, below whose convex hull the surface sits. This is shown by red lines connecting the blue points. This polyhedral structure connects this topic to blog post number 3.

Applications often demand the investigation of further properties of Bézier curves and surfaces, such as how they intersect with one another. One step in the process is: given a parametric description of a surface, obtain an implicit description of it. That is, find the relations amongst the coordinates that are satisfied for all points on the surface. Here, computational algebraic geometry tools are very useful.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s