McNeel Wiki
Inflection point plugin
edit · print · help · all topics
Main Pages

AccuRender

Bongo

Brazil r/s

Developer

Flamingo

Penguin

Rhino Blogs

Rhino

Rhino Labs

Search

Languages

Česky

Deutsch

English

Español

Français

Italiano

Polish

日本語

한국어

中文(繁體)

 
.
Developer.NET
SummaryAn implementation of a binary searcher for 3D curve inflection points.

Inflection points are those points on a curve where the second derivative equals zero (where the curvature changes sign). Visually, it is where the CurvatureGraph intersects the actual curve. However, since the CurvatureGraph is an interpolated curve, the intersections are not accurate enough (that's not even to mention you can't actually get at the graph), hence this separate plugin.

 

This plugin implements a simple binary search algorithm to find the inflection points on 3D curves.

 

Download the plugin (Rhino4)

Download the source code (VB.NET 2005)

 

 

 

 

The algorithm works as follows. Every curve is converted to a nurbs curve. Then, every nurbs curve is broken up into individual spans. Each span is sampled at 10 regular intervals, and whenever two adjacent samples yield different signs for the second derivative, the little bit of curve between those two samples is subdivided again. This goes on until a inflection point value very close to zero is found (1E-20 accuracy), or until the recursion depth exceeds 100 levels.

Linear spans are ignored and the curvature computation always happens towards the interior of the span in order to avoid faulty values at the extremes.

 

 

Contact the author

rename · changes · history · subscriptions · lost and found · references · file upload