Bentley 中几何变换实例

本文总结了一些常用的几何变换实例,以便后续开发。

DVector3d 变换

使用 DTranform*DVector3d 即可进行变换。

1
2
3
4
5
6
DVector3d screenZ = new DVector3d(0, 0, 1);
// 将屏幕 z 转到世界坐标系中
// cursorLocation 是自定义的类,此处传入当前视图的旋转矩阵即可
DTransform3d trans = new DTransform3d(cursorLocation.ViewRotation);
trans.TryInvert(out DTransform3d invertTrans);
var screenZInWorld = invertTrans * screenZ;