/// <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); }
public Point3D ToPoint3D() { return(UnitVector3D1.ToPoint3D()); }