Exemple #1
0
        private static void Preencher(BitmapData imgDta, Pontos[] pontos)
        {
            CabET cab = new CabET();

            criaET(cab, pontos);

            AET aet = new AET();
            ET  aux = cab.getInicio();
            int y   = aux.getNum();

            aet.copia_para_AET(aux.getInicio());
            aux = aux.getNext();
            while (aet.getInicio() != null)
            {
                aet.removerYMax(y);
                if (aet.getInicio() != null)
                {
                    aet.ordenarXMin();
                    aet.desenhar(imgDta, y);
                    aet.atualizarXMin();
                    y++;

                    if (aux != null && y == aux.getNum())
                    {
                        aet.copia_para_AET(aux.getInicio());
                        aux = aux.getNext();
                    }
                }
            }
        }
Exemple #2
0
        public void insere(int y, int x, double inc, int ymin)
        {
            ET    et = new ET(ymin, null);
            Caixa c  = new Caixa(y, x, inc);

            et.setInicio(c);

            if (inicio == null)
            {
                inicio = et;
            }
            else
            {
                ET aux = inicio, ant = null;
                while (aux != null && ymin > aux.getNum())
                {
                    ant = aux;
                    aux = aux.getNext();
                }

                if (aux != null)
                {
                    if (aux.getNum() == ymin)
                    {
                        c.setProx(aux.getInicio());
                        aux.getInicio().setAnt(c);
                        aux.setInicio(c);
                    }
                    else
                    {
                        et.setNext(aux);
                        if (ant != null)
                        {
                            ant.setNext(et);
                        }
                        else
                        {
                            inicio = et;
                        }
                    }
                }
                else
                {
                    et.setNext(aux);
                    ant.setNext(et);
                }
            }
        }
Exemple #3
0
        private static void criaET(CabET cab, Pontos[] pontos)
        {
            ET     et = new ET();
            Pontos p1, p2;
            int    Ymax, Xmin, Xmax, Ymin;
            double Incx;


            for (int i = 0; i < pontos.Length - 1; i++)
            {
                p1 = pontos[i];
                p2 = pontos[i + 1];

                if (p1.getY() > p2.getY())
                {
                    Ymax = p1.getY();
                    Xmax = p1.getX();
                    Xmin = p2.getX();
                    Ymin = p2.getY();
                }
                else
                {
                    Xmax = p2.getX();
                    Ymax = p2.getY();
                    Xmin = p1.getX();
                    Ymin = p1.getY();
                }

                if (((double)Ymax - (double)Ymin) == 0)
                {
                    Incx = 0;
                }
                else
                {
                    Incx = ((double)Xmax - (double)Xmin) / ((double)Ymax - (double)Ymin);
                }

                cab.insere(Ymax, Xmin, Incx, Ymin);
            }
        }
Exemple #4
0
 public void setNext(ET et)
 {
     next = et;
 }
Exemple #5
0
 public ET(int y, ET p)
 {
     num    = y;
     next   = p;
     inicio = null;
 }
Exemple #6
0
 public ET()
 {
     inicio = null;
     next   = null;
     num    = -1;
 }
Exemple #7
0
 public void setInicio(ET et)
 {
     inicio = et;
 }
Exemple #8
0
 public CabET()
 {
     inicio = null;
 }