コード例 #1
0
        /// <param name="a">perpendicular to AxisOrRotation</param>
        /// <param name="aTraverse"></param>
        /// <returns>aMeridian,  directed to equator of OZ</returns>
        public static double Centrifugal(BasinBase basin, out double a, out double aTraverse, out double aVertical)
        {
            aTraverse = 0;
            if (AxisOfRotation == Basin3.Oz)
            {
                a         = Centrifugal(basin.r * Math.Cos(basin.Varphi));
                aVertical = a * Math.Sin(basin.Theta);
                return(a * Math.Abs(Math.Cos(basin.Theta)));
            }

            var b             = (Basin3)basin;
            var axisEnd       = AxisOfRotation.ToPoint3D();
            var axisOrtohonal = new Line3D(Basin3.O3, axisEnd).LineTo(b.Q3, false);

            a = Centrifugal(axisOrtohonal.Length);

            return(CentrifugalByMatrix(b, a, axisOrtohonal, out aTraverse, out aVertical));
            //return CentrifugalByDotProduct(b, a, axisEnd, out aTraverse);
        }
コード例 #2
0
 public Point3D ToPoint3D()
 {
     return(UnitVector3D1.ToPoint3D());
 }