1

RhinoCommonDivideByLength SDKに基づいて以下のメソッドを使用しようとしていますが、3 番目の引数が何であるかがわかりません。この方法に基づいて以下のコードを記述しようとしましたが、次のエラー メッセージが表示されます。Error: 'Rhino.Geometry.Point3d' is a 'type' but is used like a 'variable'

3 番目の引数は、2 倍ではなくポイントを出力として指定することだと思いました。私は何を間違っていますか?

方法:

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()));
}
4

4 に答える 4

7

これがあなたが探しているもののようです:

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

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

詳細については、out パラメータのドキュメントを参照してください。

于 2012-11-09T16:05:17.790 に答える
2

C# で使用してみてください:

List<Point3d[]> ptlist = new List<Point3d[]>();
    Point3d[] pts;

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

new の使用は間違っていませんが、出力として配列を返す関数であるため、役に立ちません。

于 2012-11-09T16:05:52.240 に答える
2

これはあなたが求めているものかもしれないと思います。パラメータoutPoint3dオブジェクトの配列であり、返されたすべての配列内のすべてのオブジェクトのリストを取得したいようです。したがって、リストがあり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);
}
于 2012-11-09T16:13:07.637 に答える
1

new Point3d()Point3d を渡す代わりPoint3d()に Point3d をインスタンス化する必要があります。

Point3d objPoint3d = new Point3d();

pts.Add(crv[i].DivideByLength(nb, true, out objPoint3d));
于 2012-11-09T16:04:39.350 に答える