(以下所有的旋转均以原点为中心,同时椭圆的中心位于原点)
在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();
第一轴正方向 手动绘制椭圆时需要 设置 中心点 第一轴端点 第二轴端点。从中心点到第一轴端点的方向即为第一轴正方向。