Exemplo n.º 1
0
        private void DibujarTerreno(Terreno terreno, Boolean aplicarClipping, ViewPort viewPort)
        {
            foreach (Poligono poligono in PoligonosTerreno)
            {
                IList puntosDibujo;

                if (aplicarClipping)
                {
                    puntosDibujo = Clipping.RecortarPoligono(poligono.Puntos, viewPort);
                }
                else
                {
                    puntosDibujo = poligono.Puntos;
                }

                // Se rellena el polígono
                //Pintar.RellenarPoligonoScanLine(puntosDibujo, poligono.ColorRelleno);

                Gl.glColor3f(poligono.ColorLinea.Red, poligono.ColorLinea.Green, poligono.ColorLinea.Blue);

                // Todos los puntos van a ser unidos por segmentos y el último se une al primero
                Gl.glBegin(Gl.GL_POLYGON);

                foreach (Punto punto in puntosDibujo)
                {
                    Gl.glVertex2d(punto.GetXFlotante(), punto.GetYFlotante());
                }

                Gl.glEnd();
            }
        }
Exemplo n.º 2
0
        private void AplicarClipping(Rueda rueda)
        {
            foreach (Poligono poligono in PoligonosTerreno)
            {
                poligono.Puntos = Clipping.RecortarPoligono(poligono.Puntos, new ViewPort(rueda));
            }

            foreach (Poligono poligono in PoligonosRueda)
            {
                poligono.Puntos = Clipping.RecortarPoligono(poligono.Puntos, new ViewPort(rueda));
            }
        }