Esempio n. 1
0
        private void CrearPoligonosRueda(Rueda rueda)
        {
            PoligonosRueda.Clear();

            // primero agrego la rueda externa
            Poligono ruedaExterna = new Poligono();

            ruedaExterna.ColorLinea   = new ColorRGB(1, 0, 0);
            ruedaExterna.ColorRelleno = new ColorRGB(1, 0, 0);
            ruedaExterna.Puntos       = Bresenham.ObtenerPuntosEquidistantesCirculo(
                new Circulo(new PuntoFlotante(rueda.Centro.X, rueda.Centro.Y), rueda.RadioExterno), 12);

            // agrego a rueda interna
            Poligono ruedaInterna = new Poligono();

            ruedaInterna.ColorLinea   = new ColorRGB(1, 1, 1);
            ruedaInterna.ColorRelleno = new ColorRGB(1, 1, 1);
            ruedaInterna.Puntos       = Bresenham.ObtenerPuntosEquidistantesCirculo(
                new Circulo(new PuntoFlotante(rueda.Centro.X, rueda.Centro.Y), rueda.RadioInterno), 12);

            // agrego los triangulos
            Poligono triangulo1 = new Poligono();

            triangulo1.ColorLinea   = new ColorRGB(0, 1, 1);
            triangulo1.ColorRelleno = new ColorRGB(1, 0, 0);
            triangulo1.Puntos.Add(new PuntoFlotante(rueda.Centro.X, rueda.Centro.Y));
            triangulo1.Puntos.Add(ruedaInterna.Puntos[0]);
            triangulo1.Puntos.Add(ruedaInterna.Puntos[1]);
            triangulo1.Puntos.Add(ruedaInterna.Puntos[2]);
            triangulo1.Puntos.Add(ruedaInterna.Puntos[3]);

            Poligono triangulo2 = new Poligono();

            triangulo2.ColorLinea   = new ColorRGB(0, 1, 1);
            triangulo2.ColorRelleno = new ColorRGB(1, 0, 0);
            triangulo2.Puntos.Add(new PuntoFlotante(rueda.Centro.X, rueda.Centro.Y));
            triangulo2.Puntos.Add(ruedaInterna.Puntos[8]);
            triangulo2.Puntos.Add(ruedaInterna.Puntos[9]);
            triangulo2.Puntos.Add(ruedaInterna.Puntos[10]);
            triangulo2.Puntos.Add(ruedaInterna.Puntos[11]);

            PoligonosRueda.Add(triangulo1);
            PoligonosRueda.Add(triangulo2);
            PoligonosRueda.Add(ruedaInterna);
            PoligonosRueda.Add(ruedaExterna);
        }