`
youngmumu
  • 浏览: 17407 次
文章分类
社区版块
存档分类
最新评论

microstation 中的椭圆旋转参数说明

 
阅读更多

(以下所有的旋转均以原点为中心,同时椭圆的中心位于原点)

在microstation中 椭圆的两半轴是使用主轴和附轴表示的。先绘制的半轴为主轴,后绘制的半轴为附轴。二次开发获取半轴的API为

EllipseElement.PrimaryRadius(主轴长度),pEllipse.SecondaryRadius(附轴长度)。

在microstation中 所有元素的旋转都是通过一个Matrix3d类型数据描述的。椭圆对象也不例外。

Matrix3d的数据结构如下

 public struct Matrix3d
    {
        public Point3d RowX;
        public Point3d RowY;
        public Point3d RowZ;
    }

RowX为原(1,0,0)在旋转后坐标系的3D坐标;RowY为原(0,1,0)在旋转后坐标系的3D坐标;RowZ为原(0,0,1)在旋转后坐标系的3D坐标。

椭圆的旋转值参数通过 如下API获取

Matrix3d rotation = pEllipse.get_Rotation();

第一轴正方向 手动绘制椭圆时需要 设置 中心点 第一轴端点 第二轴端点。从中心点到第一轴端点的方向即为第一轴正方向。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics