0

私はSharpenLines3d自分のプロジェクトで使用して、線を描画してオブジェクトを接続していViewport3Dます。問題は、ポイントを に追加するとScreenSpaceLined3D、次のようにプログラムがクラッシュすることです。

ここに画像の説明を入力

にポイントを追加しているときにこれらの行ではなくクラッシュするScreenSpaceLines3Dので、ライブラリ内の何かだと思います。

これが私のコードです:

for (int i = 0; i < MAX + 1; i++)
{
    ...

    var bounds = this.points[i].Bounds;

    var x = bounds.X + (bounds.SizeX / 2);
    var y = bounds.Y + (bounds.SizeY / 2);
    var z = bounds.Z + (bounds.SizeZ / 2);

    coords[i] = new Point3D(x, y, z);

    for (int j = 0; j < i; j++)
    {
        lines[i, j] = new ScreenSpaceLines3D();
        lines[i, j].Color = Colors.Red;
        lines[i, j].Thickness = 6;

        lines[i, j].Points.Add(coords[i]);
        lines[i, j].Points.Add(coords[j]);
    }

}

null関数に引数として渡していないことは確かです(行を this:Addに置き換えようとしましたが、それでも機能しませんでした)。Addlines[i, j].Points.Add(new Point3D(0, 0, 0));

そして、変数を使用するすべてのコードをコメントアウトしたlinesので、この変数は、新しいScreenSpaceLines3Dものがたくさん作成されたときにのみ使用されます。しかし、私のプログラムは初期化していないときにクラッシュします。

ポイントを行に追加している2つのコード文字列をコメントアウトすると、プログラムは正常に動作し始めますが、再度追加すると、結果はスクリーンショットのようになります。

それに対処する方法は?

UPD:MainViewPort.Children.Add(lines[i, j]);ポイントを追加した後に追加すると機能しました。ますますストレージが増えています。

4

1 に答える 1