developer:scriptsamples:osculatingplane


Curve Osculating Planes

Developer: RhinoScript
Summary: How to calculate osculating planes.

Question

Is it possible to calculate the osculating plane at point P on a given curve with the methods provided by RhinoScript?

Answer

Yes. There are a number of methods included in RhinoScript that can be used to calculate a curve's osculating plane, such as CurveClosestPoint, CurveTangent, CurveCurvature, and CurveEvaluate. In this example, we will use the CurveEvaluate function to calculate the 2nd derivative of a curve at a parameter

 Function CurveOsculatingPlane(crv, t)
   CurveOsculatingPlane = Null ' default return value
   If Not Rhino.IsCurveLinear(crv) Then
     Dim rc : rc = Rhino.CurveEvaluate(crv, t, 2)
     If IsArray(rc) Then
       CurveOsculatingPlane = Rhino.PlaneFromFrame(rc(0), rc(1), rc(2))
     End If
   End If
 End Function

The following is an example of how you might use this function.

 Sub TestCurveOsculatingPlane
   Dim segs : segs = 10
   Dim crv : crv = Rhino.GetObject("Select non-linear curve", 4)
   If Not IsNull(crv) Then
     Dim pts : pts = Rhino.DivideCurve(crv, segs)
     If IsArray(pts) Then
       Dim i, t, p
       For i = 0 To UBound(pts)
         t = Rhino.CurveClosestPoint(crv, pts(i))
         p = CurveOsculatingPlane(crv, t)
         Rhino.AddPlaneSurface p, 1.0, 1.0
       Next
     End If
   End If
 End Sub
developer/scriptsamples/osculatingplane.txt · Last modified: 2011/11/11 21:10 by dale Driven by DokuWiki Recent changes RSS feed

 © 1997-2012 

McNeel North America Europe Latin AmericaAsia