File Exchange

image thumbnail

Smooth 3D bezier curves with implicit control points

version (5.6 KB) by Will Robertson
Uses Hobby's algorithm to plot smooth curves in 3D through specified control points


Updated 20 Jun 2013

View License

Editor's Note: This file was selected as MATLAB Central Pick of the Week

This code can be used to draw 3D cubic splines by only entering the points through which the spline should pass.

In other words, smooth curves can be drawn by simply defining occasional points through which the curve should pass.

Bezier control points are calculated automatically using the Hobby's algorithm (1986), which allows a slope and "tension" of the spline at each point to be specified explicitly if desired.

Cite As

Will Robertson (2021). Smooth 3D bezier curves with implicit control points (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (6)

Prasan S

Leopoldo Rodriguez

mohammad eslami


Will Robertson

@Tgn Yang — for a 2D image I presume. The algorithm generates bezier curves which it plots by sampling the curve with a certain number of "time" points along the curve. You'd have to reverse engineer the algorithm to get the expression for the bezier curve and then integrate that to get the area. Alternatively (preferably) just use numerical integration on the curve that is drawn.

Tgn Yang

It is very useful, but what should I do if I want to calculate the area of the smoothed picture?

This tool just smooths the edge, but it does not really create new edge, isn't it?

MATLAB Release Compatibility
Created with R2011b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!