如何更改3D WPF对象的中心

时间:2011-02-04 15:12:59

标签: wpf 3d

我正在努力改变在WPF中更改3D对象(Model3DGroup)中心点的最佳方法。

我已经从SketchUp导出了一个模型,一切都很好,但是中心离开了位置,导致我在旋转对象时遇到麻烦。 现在我需要围绕每个对象自己的中心进行一些旋转,并且不知道如何做到这一点......

任何建议都将不胜感激。

由于

使用Jackson Pope的建议,我使用下面的代码来获取对象的中心点:

var bounds = this.My3DObject.Bounds;

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

var centerPoint = new Point3D(x, y, z);

与此同时,我会尝试找到一个更好的解决方案,尝试将所有点移动到所需的偏移量......

1 个答案:

答案 0 :(得分:2)

要围绕它的中心旋转对象,您需要先将其翻译,使其中心位于原点。然后旋转它(然后可能将其转换回原始位置)。

找到对象的最小和最大范围,计算其center = min +(max-min)/ 2。翻译(-centreX,-centreY,-centreZ),旋转然后翻译(centreX,centreY,centreZ)。