Пример #1
0
        /// <summary>
        /// Calculates the local axis of a 1D entity.
        /// </summary>
        /// <param name="coor">Entity coordinates</param>
        /// <param name="zAxis">Z axis of the 1D entity</param>
        /// <returns>Axis</returns>
        public static StructuralAxis LocalAxisEntity1D(double[] coor, StructuralVectorThree zAxis)
        {
            var axisX = new Vector3D(coor[3] - coor[0], coor[4] - coor[1], coor[5] - coor[2]);
            var axisZ = new Vector3D(zAxis.Value[0], zAxis.Value[1], zAxis.Value[2]);
            var axisY = Vector3D.CrossProduct(axisZ, axisX);

            var axis = new StructuralAxis(
                new StructuralVectorThree(new double[] { axisX.X, axisX.Y, axisX.Z }),
                new StructuralVectorThree(new double[] { axisY.X, axisY.Y, axisY.Z }),
                new StructuralVectorThree(new double[] { axisZ.X, axisZ.Y, axisZ.Z })
                );

            axis.Normalize();
            return(axis);
        }