Exemple #1
0
        public double DistanceTo(RGPoint pt)
        {
            var x    = R - pt.R;
            var y    = G - pt.G;
            var dist = Math.Sqrt(x * x + y * y);

            return(dist);
        }
Exemple #2
0
        private void Redraw()
        {
            var bmp    = Recreate();
            var fr     = _stack.Peek();
            var r      = fr.Rectangle;
            var w      = pictureBox.Width;
            var h      = pictureBox.Height;
            var onepxw = r.Width / w;
            var onepxh = r.Height / h;

            for (var x = r.X; x <= r.X + r.Width; x += onepxw)
            {
                for (var y = r.Y; y <= r.Y + r.Height; y += onepxh)
                {
                    FillPixel(bmp, x, y);
                }
            }

            var gr = Graphics.FromImage(pictureBox.Image);

            DrawPoint(new CPoint(1, 0, 0), Config.White);
            DrawPoint(new CPoint(0, 0, 1), Config.Black);

            var sqrtN            = Math.Sqrt(RgSettings.N);
            var nAlphaMinus1     = Math.Pow(RgSettings.N, RgSettings.Alpha - 1);
            var nAlphaMinus3Div2 = Math.Pow(RgSettings.N, RgSettings.Alpha - 1.5);
            var nAlphaMinus1Div2 = Math.Pow(RgSettings.N, RgSettings.Alpha - 0.5);

            var rPlus  = (sqrtN - nAlphaMinus1) / (1 - sqrtN);
            var rMinus = (-sqrtN - nAlphaMinus1) / (1 + sqrtN);
            var gPlus  = RgSettings.N * ((1 - nAlphaMinus3Div2) / (1 - nAlphaMinus1Div2));
            var gMinus = RgSettings.N * ((1 + nAlphaMinus3Div2) / (1 + nAlphaMinus1Div2));

            var rgPlus  = new RGPoint(rPlus, gPlus);
            var rgMinus = new RGPoint(rMinus, gMinus);

            var cPlus  = rgPlus.CDirect;
            var cMinus = rgMinus.CDirect;

            DrawCross(cPlus, Config.White);
            DrawCross(cMinus, Config.Black);

            var sing = new CPoint(1, RgSettings.Lambda, RgSettings.Lambda2);

            DrawXCross(sing, Config.White);

            gr.Save();

            fr.Bitmap = new Bitmap(bmp);
            DrawPoint();
        }
Exemple #3
0
        public static IEnumerable <RGPoint> DirectIterations(RGPoint start, int count)
        {
            yield return(start);

            var rg = start;

            for (var i = 1; i <= count; i++)
            {
                var r = rg.DirectIterated();
                yield return(r);

                rg = r;
            }
        }
Exemple #4
0
        public RGPoint DirectTrackEndPoint(RGPoint crit, CProjection projection, out int cnt)
        {
            var          pt  = this;
            const double max = double.MaxValue;
            var          d   = max;
            var          i   = 0;

            while (d > Config.Acc && i < Config.Count)
            {
                pt.IterateDirect();
                d = pt.DistanceTo(crit);
                i++;
            }
            cnt = i;
            return(pt);
        }
Exemple #5
0
        public IEnumerable <RGPoint> ReverseTrack(RGPoint crit)
        {
            var          pt  = this;
            const double max = double.MaxValue;
            var          d   = max;
            var          i   = 0;
            var          res = new List <RGPoint>();

            while (d > Config.Acc && i < Config.Count)
            {
                res.Add(pt);
                pt = pt.ReverseIterated();
                d  = pt.DistanceTo(crit);
                i++;
            }
            return(res);
        }
Exemple #6
0
        public static Color GetColorDirect(RGPoint pt, CProjection projection)
        {
            var rp = pt;
            int cnt;
            var end = pt.DirectTrackEndPoint(Config.ReserverInterestedPointRg, projection, out cnt);

            if (cnt >= Config.Count)
            {
                return(Config.Black);
            }
            var last = end;
            var p    = Config.ReserverInterestedPointRg;
            var clr  = rp.G < 0
                            ? (last.R < p.R ? Config.Yellow : Config.Green)
                            : (last.R < p.R ? Config.Red : Config.Blue);

            var resClr = clr;

            return(resClr);
        }
Exemple #7
0
 public RGPoint(RGPoint p)
     : this(p.R, p.G)
 {
 }