Esempio n. 1
0
        public CPoint ReverseIterated(CProjection projection)
        {
            var c0C2MinusC1           = C0 * C2 - C1 * C1;
            var c0MinusLambdaMinus1C1 = C0 - RgSettings.LambdaMinus1 * C1;
            var c1MinusLambdaMinus1C2 = C1 - RgSettings.LambdaMinus1 * C2;

            var c0 = c0MinusLambdaMinus1C1 * c0MinusLambdaMinus1C1 + RgSettings.NLambdaMinus2 * c0C2MinusC1;
            var c1 = RgSettings.LambdaMinus1 * c0MinusLambdaMinus1C1 * c1MinusLambdaMinus1C2 + RgSettings.NLambdaMinus2 * c0C2MinusC1;
            var c2 = RgSettings.LambdaMinus2 * c1MinusLambdaMinus1C2 * c1MinusLambdaMinus1C2 + RgSettings.NLambdaMinus2 * c0C2MinusC1;

            var res = new CPoint(c0, c1, c2);

            res.Project(projection);
            return(res);
        }
Esempio n. 2
0
        public CPoint DirectIterated(CProjection projection)
        {
            var c1MinusC0     = C1 - C0;
            var c2MunusC1     = C2 - C1;
            var c0C2MinusC1Sq = C0 * C2 - C1 * C1;
            var n1            = RgSettings.OneDivN;

            var c0 = c1MinusC0 * c1MinusC0 + n1 * c0C2MinusC1Sq;
            var c1 = RgSettings.Lambda * (c1MinusC0 * c2MunusC1 + n1 * c0C2MinusC1Sq);
            var c2 = RgSettings.Lambda2 * (c2MunusC1 * c2MunusC1 + n1 * c0C2MinusC1Sq);

            var res = new CPoint(c0, c1, c2);

            res.Project(projection);
            return(res);
        }