0

我有一个带有 Eyeshot 的导入步骤对象。对象由多个实体组成,如何将所有实体旋转为一个?

4

1 回答 1

3

我猜您尝试单独旋转每个,但没有按预期工作,对吗?

您所做的是将相同的旋转应用于作为局部变换的每个实体矩阵。你需要一个世界旋转。为此,您需要使用旋转的覆盖版本。

假设您想要在所有实体的 0,0,0 上在世界的 Z 轴上旋转 90 度

// create a 90 degree rotation at 0,0,0
var rotation = new Rotation(Math.PI / 2d, Vector3D.AxisZ, new Point3D(0, 0, 0));

// loop each entities and apply the rotation
foreach (var entity in viewportLayout1.Entities)
{
    entity.TransformBy(rotation);
}

旋转轴和点很重要

于 2018-06-28T16:09:07.377 回答