我试图基于RhinoCommon SDK使用下面的DivideByLength方法,但是我不明白第三个参数是什么。我试图根据这种方法在下面编写代码,但收到以下错误消息:Error: 'Rhino.Geometry.Point3d' is a 'type' but is used like a 'variable'

我认为第三个论点是指定我希望点作为输出而不是加倍。我究竟做错了什么?

方法:

Public Function DivideByLength ( _
    segmentLength As Double, _
    includeStart As Boolean, _
    <OutAttribute> ByRef points As Point3d() _
) As Double()


码:

List<Point3d> pts = new List<Point3d>();

for(int i = 0; i < crv.Count;i = i + 2)
{
  pts.Add(crv[i].DivideByLength(nb, true, out Point3d()));
}

最佳答案

我认为这可能是您所追求的。您的out参数是一个Point3d对象的数组,看起来您想获取所有返回的数组中所有对象的列表。因此,您将拥有自己的列表,并且需要AddRange结果。

List<Point3d> pts = new List<Point3d>();

for(int i = 0; i < crv.Count;i = i + 2)
{
    Point3d[] arr;
    crv[i].DivideByLength(nb, true, out arr);
    pts.AddRange(arr);
}

10-07 20:16