2012-11-06 1 views
0

Point3DCollection에서 한 포인트를 오프셋하려고하지만 새 위치로 변환 할 수 없습니다. 텍스트 상자에 첫 번째 점에 대해 0,0,0이 표시되지만 3,3,3의 오프셋을 수행합니다.Point3DCollection에서 Point3D를 오프셋 할 수 없습니다.

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; 

답변

1

여기에 "주의"에서 참조하십시오 : http://msdn.microsoft.com/en-us/library/system.windows.media.media3d.point3d.offset.aspx

그래서 [0], 당신에게 개체 만 카피에 대한 참조를 제공하지 않습니다 당신이 변경 및 결과 때문에 무슨 일이 다음 코드에 문제가 있습니다 컬렉션의 오프셋이 아니라 해당 복사본의 오프셋입니다.

컬렉션을 사용해야하는 경우 컬렉션의 개체를 동일한 인덱스의 새 Point3D 개체로 대체하는 것이 좋습니다.

관련 문제