Bradley Worley about
sci
sw
hw
cv
etc
A simple exercise with Bezier curves An old project that was fun enough to document

Introduction

I was always interested in the computerized usage of curves (such as NURBS, Splines, etc.) so I decided to learn a little more about Bezier curves one evening in the school library in 2007, and I instantly decided to write a C program to generate renderable curves from control points.

My first program, bezier, generated its curves in static arrays to hold the points. This method was fast, but quite inflexible, and not as portable as I had hoped. My second attempt resulted in an implementation of the Bezier plotter that utilized linked lists to store the point data, called belize.

Mathematics

A Bezier function is generated as the following parametric equation, where $P_i$ represents the cartesian coordinate of the $i$-th control point. The number of points $N$ determines how many steps are made by the parameter, $t$.

\[\mathbf{B}(t) = \sum_{i=0}^n { n \choose i } \mathbf{P}_i (1-t)^{n-i} t^i \quad t \in [ 0, 1 ].\]

Source code

I decided to release different packages for each platform. The codebase is essentially unchanged, if I recall correctly. It’s been a while. :P

Example curves

geekysuavo.github.io