This project aims to implement the NURBS curve and surface calculation algorithms in native Python. It currently implements the following algorithms from The NURBS Book by Piegl & Tiller:
- Algorithm A2.1: FindSpan
- Algorithm A2.2: BasisFuns
- Algorithm A3.1: CurvePoint
- Algorithm A3.5: SurfacePoint
- Algorithm A4.1: CurvePoint
- Algorithm A5.1: CurveKnotIns
- Algorithm A5.3: SurfaceKnotIns
The package and the samples are initially developed for M E 625 Surface Modeling course offered at Iowa State University in Spring 2016 semester.
Non-Uniform Rational B-Spline (NURBS) is a mathematical model used commonly in computer graphics and CAD systems for generating and representing curves and surfaces. For details, you can check the related Wikipedia article or The NURBS Book by Les Piegl and Wayne Tiller.
- Windows 10 64-bit
- Anaconda3 v4.0.0 (using Python 3.5.1) from Continuum Analytics
- Matplotlib v1.5.1 (included in Anaconda)
nurbs\
directory includes the NURBS librariessamples\
directory includes sample control points for curves and surfacescurve-*.py
files are testing scripts for curve calculationssurface-*.py
files are testing scripts for surface calculations
- Onur Rauf Bingol