M_Rhino_Geometry_NurbsCurve__ctor_1 - mcneel/rhinocommon-api-docs GitHub Wiki
Constructs a new NurbsCurve with knot and CV memory allocated.
Namespace: Rhino.Geometry
Assembly: RhinoCommon (in RhinoCommon.dll) Version: Rhino 6.0
C#
public NurbsCurve(
int dimension,
bool rational,
int order,
int pointCount
)
VB
Public Sub New (
dimension As Integer,
rational As Boolean,
order As Integer,
pointCount As Integer
)
- dimension
- Type: System.Int32
>=1. - rational
- Type: System.Boolean
true to make a rational NURBS. - order
- Type: System.Int32
(>= 2) The order=degree+1. - pointCount
- Type: System.Int32
(>= order) number of control vertices.
VB
Partial Class Examples
Public Shared Function AddNurbsCircle(ByVal doc As Rhino.RhinoDoc) As Rhino.Commands.Result
' The easy way to get a NURBS curve from a circle is with
' the following two lines of code.
'
' Dim c As New Rhino.Geometry.Circle(20)
' Dim nc As Rhino.Geometry.NurbsCurve = c.ToNurbsCurve()
'
' This sample demonstrates creating a NURBS curve from scratch.
Const dimension As Integer = 3
Const isRational As Boolean = True
Const order As Integer = 3
Const cv_count As Integer = 9
Dim nc As New Rhino.Geometry.NurbsCurve(dimension, isRational, order, cv_count)
nc.Points.SetPoint(0, 1.0, 0.0, 0.0, 1.0)
nc.Points.SetPoint(1, 0.707107, 0.707107, 0.0, 0.707107)
nc.Points.SetPoint(2, 0.0, 1.0, 0.0, 1.0)
nc.Points.SetPoint(3, -0.707107, 0.707107, 0.0, 0.707107)
nc.Points.SetPoint(4, -1.0, 0.0, 0.0, 1.0)
nc.Points.SetPoint(5, -0.707107, -0.707107, 0.0, 0.707107)
nc.Points.SetPoint(6, 0.0, -1.0, 0.0, 1.0)
nc.Points.SetPoint(7, 0.707107, -0.707107, 0.0, 0.707107)
nc.Points.SetPoint(8, 1.0, 0.0, 0.0, 1.0)
nc.Knots(0) = 0.0
nc.Knots(1) = 0.0
nc.Knots(2) = 0.5 * Math.PI
nc.Knots(3) = 0.5 * Math.PI
nc.Knots(4) = Math.PI
nc.Knots(5) = Math.PI
nc.Knots(6) = 1.5 * Math.PI
nc.Knots(7) = 1.5 * Math.PI
nc.Knots(8) = 2.0 * Math.PI
nc.Knots(9) = 2.0 * Math.PI
If nc.IsValid Then
doc.Objects.AddCurve(nc)
doc.Views.Redraw()
Return Rhino.Commands.Result.Success
End If
Return Rhino.Commands.Result.Failure
End Function
End Class
C#
using System;
partial class Examples
{
public static Rhino.Commands.Result AddNurbsCircle(Rhino.RhinoDoc doc)
{
// The easy way to get a NURBS curve from a circle is with
// the following two lines of code.
//
// Rhino.Geometry.Circle c = new Rhino.Geometry.Circle(20);
// Rhino.Geometry.NurbsCurve nc = c.ToNurbsCurve();
//
// This sample demonstrates creating a NURBS curve from scratch.
const int dimension = 3;
const bool isRational = true;
const int order = 3;
const int cv_count = 9;
Rhino.Geometry.NurbsCurve nc = new Rhino.Geometry.NurbsCurve(dimension, isRational, order, cv_count);
nc.Points.SetPoint(0, 1.0, 0.0, 0.0, 1.0);
nc.Points.SetPoint(1, 0.707107, 0.707107, 0.0, 0.707107);
nc.Points.SetPoint(2, 0.0, 1.0, 0.0, 1.0);
nc.Points.SetPoint(3, -0.707107, 0.707107, 0.0, 0.707107);
nc.Points.SetPoint(4, -1.0, 0.0, 0.0, 1.0);
nc.Points.SetPoint(5, -0.707107, -0.707107, 0.0, 0.707107);
nc.Points.SetPoint(6, 0.0, -1.0, 0.0, 1.0);
nc.Points.SetPoint(7, 0.707107, -0.707107, 0.0, 0.707107);
nc.Points.SetPoint(8, 1.0, 0.0, 0.0, 1.0);
nc.Knots[0] = 0.0;
nc.Knots[1] = 0.0;
nc.Knots[2] = 0.5 * Math.PI;
nc.Knots[3] = 0.5 * Math.PI;
nc.Knots[4] = Math.PI;
nc.Knots[5] = Math.PI;
nc.Knots[6] = 1.5 * Math.PI;
nc.Knots[7] = 1.5 * Math.PI;
nc.Knots[8] = 2.0 * Math.PI;
nc.Knots[9] = 2.0 * Math.PI;
if (nc.IsValid)
{
doc.Objects.AddCurve(nc);
doc.Views.Redraw();
return Rhino.Commands.Result.Success;
}
return Rhino.Commands.Result.Failure;
}
}
Python
using System;
partial class Examples
{
public static Rhino.Commands.Result AddNurbsCircle(Rhino.RhinoDoc doc)
{
// The easy way to get a NURBS curve from a circle is with
// the following two lines of code.
//
// Rhino.Geometry.Circle c = new Rhino.Geometry.Circle(20);
// Rhino.Geometry.NurbsCurve nc = c.ToNurbsCurve();
//
// This sample demonstrates creating a NURBS curve from scratch.
int dimension = 3;
bool isRational = true;
int order = 3;
int cv_count = 9;
Rhino.Geometry.NurbsCurve nc = new Rhino.Geometry.NurbsCurve(dimension, isRational, order, cv_count);
nc.Points.SetPoint(0, 1.0, 0.0, 0.0, 1.0);
nc.Points.SetPoint(1, 0.707107, 0.707107, 0.0, 0.707107);
nc.Points.SetPoint(2, 0.0, 1.0, 0.0, 1.0);
nc.Points.SetPoint(3, -0.707107, 0.707107, 0.0, 0.707107);
nc.Points.SetPoint(4, -1.0, 0.0, 0.0, 1.0);
nc.Points.SetPoint(5, -0.707107, -0.707107, 0.0, 0.707107);
nc.Points.SetPoint(6, 0.0, -1.0, 0.0, 1.0);
nc.Points.SetPoint(7, 0.707107, -0.707107, 0.0, 0.707107);
nc.Points.SetPoint(8, 1.0, 0.0, 0.0, 1.0);
nc.Knots[0] = 0.0;
nc.Knots[1] = 0.0;
nc.Knots[2] = 0.5 * Math.PI;
nc.Knots[3] = 0.5 * Math.PI;
nc.Knots[4] = Math.PI;
nc.Knots[5] = Math.PI;
nc.Knots[6] = 1.5 * Math.PI;
nc.Knots[7] = 1.5 * Math.PI;
nc.Knots[8] = 2.0 * Math.PI;
nc.Knots[9] = 2.0 * Math.PI;
if (nc.IsValid)
{
doc.Objects.AddCurve(nc);
doc.Views.Redraw();
return Rhino.Commands.Result.Success;
}
return Rhino.Commands.Result.Failure;
}
}
Supported in: 6.0.16224.21491, 5D58w