Esempio n. 1
0
        public Edge PerpendicularOnPerimeter(Ellipse ellipse)
        {
            Class12.point_0   = new Point2(this.double_0, this.double_1, this.double_2);
            Class12.ellipse_0 = ellipse.DeepCopy();
            LineSearch.ObjectiveFunction function = new LineSearch.ObjectiveFunction(Class12.smethod_0);
            double parameterAtPoint = ellipse.GetParameterAtPoint(Class12.point_0);
            double tetha;

            if (parameterAtPoint <= 3.1415926535897931)
            {
                tetha = LineSearch.GoldenSection(0.001 * Global.AbsoluteEpsilon, 0.0, 3.1415926535897931, function);
            }
            else
            {
                tetha = LineSearch.GoldenSection(0.001 * Global.AbsoluteEpsilon, 3.1415926535897931, 6.2831853071795862, function);
            }
            return(new Edge(this, ellipse.GetPointAtParameter(tetha)));
        }