建立椭圆

符工:下面这段代码中,rotMatrix.ROW.X = 2 : rotMatrix.RowY.X = 4: rotMatrix.RowY.Y = 5,知道是调整圆的角度的,不知道怎么用?

Sub TestCreateEllipseC()
    Dim CPoint As Point3d
    Dim myEllipse As EllipseElement
    Dim rotMatrix As Matrix3d
    CPoint.X = 2.5: CPoint.Y = 2.5
    rotMatrix.RowX.X = 2
    rotMatrix.RowY.X = 4: rotMatrix.RowY.Y = 5
    Set myEllipse = CreateEllipseElement2(Nothing, CPoint, 1, 0.5, rotMatrix)
    ActiveModelReference.AddElement myEllipse
End Sub
Parents
  • 分析如下:

    rotMatrix是一个三乘三的矩阵(可以看做是RowX、RowY和RowZ或ColumnX、ColumnY和ColumnZ),从列来看,第一列的三个数表示旋转后坐标系的X轴(我称之为X'轴),第二列为旋转后坐标系的Y轴(Y‘轴),第三列为旋转后坐标系的Z轴(Z’轴)。

    以上设置中,凡是没有赋值的默认都为0。所以,X‘轴为(2,4,0), Y’轴为(0,5,0), Z‘轴为(0,0,0)。由于它们三个需要正交,所以,当X’轴确定后,Y‘和Z’轴的值会自动调整。这样,新的坐标系的X轴就是从(0,0,0)起始指向(2,4,0)方向的一个矢量。该方向作为椭圆主轴(或称之为长轴)的方向。如下图所示:

    RowX.X=2 和RowY.X=4仅仅表示一个方向,你把它们分别改成1和2也还是这个方向,绘制出的椭圆也还是一样的。



    Answer Verified By: zhiying guo 

Reply
  • 分析如下:

    rotMatrix是一个三乘三的矩阵(可以看做是RowX、RowY和RowZ或ColumnX、ColumnY和ColumnZ),从列来看,第一列的三个数表示旋转后坐标系的X轴(我称之为X'轴),第二列为旋转后坐标系的Y轴(Y‘轴),第三列为旋转后坐标系的Z轴(Z’轴)。

    以上设置中,凡是没有赋值的默认都为0。所以,X‘轴为(2,4,0), Y’轴为(0,5,0), Z‘轴为(0,0,0)。由于它们三个需要正交,所以,当X’轴确定后,Y‘和Z’轴的值会自动调整。这样,新的坐标系的X轴就是从(0,0,0)起始指向(2,4,0)方向的一个矢量。该方向作为椭圆主轴(或称之为长轴)的方向。如下图所示:

    RowX.X=2 和RowY.X=4仅仅表示一个方向,你把它们分别改成1和2也还是这个方向,绘制出的椭圆也还是一样的。



    Answer Verified By: zhiying guo 

Children