Exemple #1
0
        public override Point Fun(Point p)
        {
            var precalcAtanYX = VariationHelper.PreAtanYx(p);
            var precalcSqrt   = VariationHelper.PreSqrt(p);

            if (Math.Abs(precalcSqrt) <= VariationHelper.SmallDouble)
            {
                return(p);
            }
            var n2 = W * (VariationHelper.Psi - _holes) * Math.Cos(_petals * precalcAtanYX) / precalcSqrt;
            var x  = n2 * p.X;
            var y  = n2 * p.Y;


            return(new Point(x, y));
        }
        public override Point Fun(Point p)
        {
            //            var x = p.X;
            //            var y = p.Y;
            //            var q = 1.0 / VariationHelper.R(p);
            //            return new Point(
            //                q * (x - y) * (x + y),
            //                q * (2.0 * x * y));

            var preSqrt = VariationHelper.PreSqrt(p);
            var preSinA = VariationHelper.PreSinA(p, preSqrt);
            var preCosA = VariationHelper.PreCosA(p, preSqrt);

            return(new Point(W * (preSinA * p.X - preCosA * p.Y),
                             W * (preCosA * p.X + preSinA * p.Y)));
        }
        public override Point Fun(Point p)
        {
            //            var p1 = P1 * P1;
            //            var r = VariationHelper.R(p);
            //            var t = r - 2.0 * p1 * VariationHelper.Trunc((r + p1) / (2.0 * p1)) + r * (1.0 - p1);
            //            var theta = VariationHelper.Theta(p);
            //            return new Point(t * Math.Sin(theta), t * Math.Cos(theta));
            //            var y = p.Y;

            // var dx = P1 * P1 + 1.0E-8;
            var preSqrt = VariationHelper.PreSqrt(p);

            if (Math.Abs(_dx) <= VariationHelper.SmallDouble ||
                Math.Abs(preSqrt) <= VariationHelper.SmallDouble)
            {
                return(p);
            }
            var n2 = W * (2.0 - _dx * ((int)((preSqrt / _dx + 1.0) / 2.0) * 2.0 / preSqrt + 1.0));

            return(new Point(n2 * p.X, n2 * p.Y));
        }
        public override Point Fun(Point p)
        {
            //            var r = VariationHelper.R(p);
            //            var theta = VariationHelper.Theta(p);
            //            var c2 = C * C;
            //            var q = (r + c2) % (2.0 * c2) - c2 + r * (1.0 - c2);
            //            var dx = q * Math.Cos(theta);
            //            var dy = q * Math.Sin(theta);
            //            return new Point(dx, dy);

            // var coeff20 = E;
            // var n2 = coeff20 * coeff20 + 1.0E-300;
            var preSqrt = VariationHelper.PreSqrt(p);
            var n3      = preSqrt + _n2 - (int)((preSqrt + _n2) / (2.0 * _n2)) * 2 * _n2 - _n2 +
                          preSqrt * (1.0 - _n2);

            return(new Point(
                       n3 * VariationHelper.PreCosA(p, preSqrt),
                       n3 * VariationHelper.PreSinA(p, preSqrt)
                       ));
        }
Exemple #5
0
        public override Point Fun(Point p)
        {
            //            var r = VariationHelper.R(p);
            //            var theta = VariationHelper.Theta(p);
            //            var q = 1.0 / r;
            //            return new Point(
            //                q * (Math.Cos(theta) + Math.Sin(r)),
            //                q * (Math.Sin(theta) - Math.Cos(r))
            //            );

            var preSqrt = VariationHelper.PreSqrt(p);
            var preSinA = VariationHelper.PreSinA(p, preSqrt);
            var preCosA = VariationHelper.PreCosA(p, preSqrt);
            var sin     = Math.Sin(preSqrt);
            var cos     = Math.Cos(preSqrt);
            var n2      = W / preSqrt;

            return(new Point(
                       (preCosA + sin) * n2,
                       (preSinA - cos) * n2
                       ));
        }