« Back

Expanding curves

Here's a motion graphic effect I had an idea on for probably a few days—have a logo expand until it fills up the screen. Demonstrated here with a random curve with the expand parameter animated. It, however, does not work with contracting.

The idea here is to take each point in the curve and "expand" it away from the point's normal, which is just saying what direction is perpendicular at the location of the point.

  1. To accomplish this, the curve is resampled so that some attributes can be taken at any known point. The sample range is from 0.0–1.0, so take the vertex index and divide it by the "length" (or how many vertices there are), so with each index we have the value of its normal.

  2. Then we take that normal vector and scale it, this scale is the expand parameter.

  3. Finally we can apply this to every vertex in the curve to apply that effect.