Ejemplo n.º 1
0
        public static IList RecortarPoligono(IList puntos, ViewPort viewport)
        {
            IList puntosClippeados;

            Punto pia = new PuntoFlotante(viewport.XIzq, viewport.YAbajo);
            Punto pda = new PuntoFlotante(viewport.XDer, viewport.YAbajo);
            Punto pdb = new PuntoFlotante(viewport.XDer, viewport.YArriba);
            Punto pib = new PuntoFlotante(viewport.XIzq, viewport.YArriba);

            puntosClippeados = Recortar(puntos, pia, pda);
            puntosClippeados = Recortar(puntosClippeados, pda, pdb);
            puntosClippeados = Recortar(puntosClippeados, pdb, pib);
            puntosClippeados = Recortar(puntosClippeados, pib, pia);

            return puntosClippeados;
        }
Ejemplo n.º 2
0
        internal void DibujarZoomEscena(Escena escena)
        {
            Gl.glDisable(Gl.GL_LIGHTING);
            CrearPoligonosTerreno(escena.Terreno);
            CrearPoligonosRueda(escena.Rueda);

            Gl.glPushMatrix();

            ViewPort vp = new ViewPort(escena.Rueda);

            this.EscalarEscenaToViewCameraWindow(vp);

            DibujarTerreno(escena.Terreno, true, vp);
            DibujarRueda(escena.Rueda);

            Gl.glPopMatrix();
            Gl.glEnable(Gl.GL_LIGHTING);
        }
Ejemplo n.º 3
0
 private void EscalarEscenaToViewCameraWindow(ViewPort viewPort)
 {
     Gl.glTranslated(X_MIN_ZOOM, Y_MIN_ZOOM, 0);
     Gl.glScaled((X_MAX_ZOOM - X_MIN_ZOOM) / (viewPort.XDer - viewPort.XIzq), (Y_MAX_ZOOM - Y_MIN_ZOOM) / (viewPort.YArriba - viewPort.YAbajo), 1);
     Gl.glTranslated(-viewPort.XIzq, -viewPort.YAbajo, 0);
 }