私は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
に置き換えようとしましたが、それでも機能しませんでした)。Add
lines[i, j].Points.Add(new Point3D(0, 0, 0));
そして、変数を使用するすべてのコードをコメントアウトしたlines
ので、この変数は、新しいScreenSpaceLines3D
ものがたくさん作成されたときにのみ使用されます。しかし、私のプログラムは初期化していないときにクラッシュします。
ポイントを行に追加している2つのコード文字列をコメントアウトすると、プログラムは正常に動作し始めますが、再度追加すると、結果はスクリーンショットのようになります。
それに対処する方法は?
UPD:MainViewPort.Children.Add(lines[i, j]);
ポイントを追加した後に追加すると機能しました。ますますストレージが増えています。