我试图在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;
答案 0 :(得分:1)
请参阅此处的“备注”:http://msdn.microsoft.com/en-us/library/system.windows.media.media3d.point3d.offset.aspx
因此result [0]不会为您提供对象的引用,而是一个副本,以便您更改该副本的偏移量而不是集合中的副本。
如果您需要使用集合,一种解决方案是替换集合中的对象,并使用相同索引处的新Point3D对象。