示例#1
0
        static void desenhaNo(int no)
        {
            bool  norte, sul, este, oeste;
            float larguraNorte, larguraSul, larguraEste, larguraOeste;
            Arco  arco = Grafos.arcos[0];
            No    noi = Grafos.nos[no], nof;

            norte = sul = este = oeste = true;


            Gl.glPushName(no);
            Gl.glPushMatrix();
            Gl.glTranslatef(Grafos.nos[no].x, Grafos.nos[no].y, Grafos.nos[no].z);
            Gl.glPolygonMode(Gl.GL_FRONT_AND_BACK, Gl.GL_FILL);
            Gl.glColor3f(0, 0, 1);
            Glut.glutSolidSphere((Grafos.nos[no].largura) / 2.0, 50, 40);//nao consegui
            Gl.glPopMatrix();
            Gl.glPopName();


            for (int i = 0; i < Grafos.numArcos; arco = Grafos.arcos[++i])
            {
                if (arco.noi == no)
                {
                    nof = Grafos.nos[arco.nof];
                }
                else
                if (arco.nof == no)
                {
                    nof = Grafos.nos[arco.noi];
                }
                else
                {
                    continue;
                }
                if (noi.x == nof.x)
                {
                    if (noi.y < nof.y)
                    {
                        norte        = false;
                        larguraNorte = arco.largura;
                    }
                    else
                    {
                        sul        = false;
                        larguraSul = arco.largura;
                    }
                }
                else
                if (noi.x < nof.x)
                {
                    oeste        = false;
                    larguraOeste = arco.largura;
                }
                else
                {
                    este        = false;
                    larguraEste = arco.largura;
                }
                if (norte && sul && este && oeste)
                {
                    return;
                }
            }
        }