1

我现在正在研究 IFC 文件的 webgl 查看器。大多数 IfcRepresentation 对象都很容易理解,但是我不擅长协调转换。有没有更好的表达式来翻译和旋转由 IfcAxis2Placement3D 定义的 THREEJS 中的 Object3D?我想它应该通过 Z 轴旋转对象然后将 Z 轴对齐到一个新的向量,如何实现这个?另一个问题是关于 IfcObjectPlacement。在 PlacementRelTo == null 之前,它总是需要一个子 PlacementRelTo 对象。我又有点疑惑了,如果我想从这个位置读取绝对坐标,是前向变换还是后向变换?我的意思是,使用push-pop还是直接命令?例如,如果有像 M1, M2.. Mn 这样的矩阵,则 M = M1 x M2 x ... Mn 或 M = Mn x Mn-1 x ... x M2 x M1?我可以在我的项目中找到漂亮的网格物体,但位置总是错误的。请帮我。

谢谢。

4

1 回答 1

0

看看这篇关于矩阵变换的文章,了解矩阵变换的入门知识。

值得注意的是,IFC 模型中的大多数几何图形将是“隐式”而不是“显式”形状。这意味着需要执行额外的处理,然后才能将数据转换为可以输入典型 3D 场景的形式 - 因此您会从模型中丢失很多形状,因为很少有形状会被明确建模为网格。总而言之,IFC 中的几何是非平凡的 (图表)。那是在您开始放置/映射/转换到世界坐标系之前。

目前尚不清楚您是否使用 IFC 工具包来处理原始 IFC STEP 数据。如果没有,我建议您这样做,因为它会节省大量工作(可能需要数年的工作)。

BuildingSmart 维护处理 IFC(商业和开源)的资源列表

我知道以下工具包相当成熟并且能够处理几何图形。有些已经有 WebGL 实现,您可能可以重复使用。

于 2015-10-01T08:34:11.783 回答