Example #1
0
        private List <Point> PrzydzielDoOdcinkaKwadraty(Odcinek o)
        {
            List <Point> Zwracana = new List <Point>();
            Point        Poczotek = new Point(Convert.ToInt32(o.PoczotekX / SzerokośćKratki), Convert.ToInt32(o.PoczotekY / WysokośćKratki));
            Point        Koniec   = new Point(Convert.ToInt32(o.KoniecX / SzerokośćKratki), Convert.ToInt32(o.KoniecY / WysokośćKratki));

            if (Poczotek == Koniec)
            {
                Zwracana.Add(Poczotek);
                return(Zwracana);
            }
            o.WyZnaczAB();
            if (!o.WyznaczoneAB || Poczotek.X == Koniec.X)
            {
                PrzydzielajDoWartosciKwadraty(Poczotek.X, o.PoczotekY, o.KoniecY, Zwracana);
                return(Zwracana);
            }

            int   IX = Poczotek.X + 1;
            float KoniecPoprzedniego = o.WartośćY((IX)*SzerokośćKratki);

            PrzydzielajDoWartosciKwadraty(Poczotek.X, o.PoczotekY, KoniecPoprzedniego, Zwracana);
            PrzydzielajDoWartosciKwadraty(Koniec.X, o.KoniecY, o.WartośćY(Koniec.X * SzerokośćKratki), Zwracana);
            while (IX < Koniec.X)
            {
                PrzydzielajDoWartosciKwadraty(IX++, KoniecPoprzedniego, KoniecPoprzedniego = o.WartośćY((IX)*SzerokośćKratki), Zwracana);
            }

            return(Zwracana);
        }