The following code demostrates how to the matrix from model space referenced by a viewport to the layout where the viewport resides.
//we need to apply the the view's transform to have it look the same
// in paper space (the paper space view is always orthogonal)
AcGeMatrix3d mat = AcGeMatrix3d::worldToPlane(AcGePlane(viewTarget, viewDirection));
//apply any view twist
mat = AcGeMatrix3d::rotation(twistAngle, AcGeVector3d::kZAxis) * mat;
// Get the center of the view in WCS coords
AcGePoint3d viewCenter3d(viewCenter.x, viewCenter.y, 0);
mat = AcGeMatrix3d::scaling(scale, viewCenter3d) * mat;
// Origin displacement from model to paper
AcGeVector3d offset(centerPoint.x - viewCenter3d.x, centerPoint.y - viewCenter3d.y, 0);
mat = AcGeMatrix3d::translation(offset) * mat;
本文介绍如何将模型空间中视口的坐标转换到布局空间。通过使用AcGeMatrix3d类的各种方法,如旋转、缩放和平移等,来实现从模型空间到图纸空间的完整坐标变换过程。
1万+

被折叠的 条评论
为什么被折叠?



