0

Point3DCollection 内のポイントをオフセットしようとしていますが、新しい位置に変換できませんでした。3,3,3 のオフセットを行っていますが、テキスト ボックスには最初のポイントが 0,0,0 と表示されます。次のコードの問題点:

var result = new Point3DCollection(n);

var pt1 = new Point3D(0, 0, 0);
var pt2 = new Point3D(5, 5, 5);

result.Add(pt1);
result.Add(pt2);  
result[0].Offset(3,3,3);
textbox1.Text = result[0].X + "," + result[0].Y + "," + result[0].Z;
4

1 に答える 1

1

ここの「備考」の下を参照してください:http://msdn.microsoft.com/en-us/library/system.windows.media.media3d.point3d.offset.aspx

したがって、result[0] はオブジェクトへの参照ではなくコピーを提供するため、コレクション内のオフセットではなく、そのコピーのオフセットを変更します。

コレクションを操作する必要がある場合、1 つの解決策は、コレクション内のオブジェクトを置き換え、同じインデックスにある新しい Point3D オブジェクトに置き換えることです。

于 2012-11-06T08:09:45.540 に答える