// Start is called before the first frame update
 void Start()
 {
     main = GameObject.Find("MainController").GetComponent <Bresenham>();
 }
Exemple #2
0
        public void GraficadoraRellenoZ(PictureBox[] pictureBoxes, ComboBox color, ListBox[] listas)
        {
            int rango = ((int)mLado * (int)SF);
            int veri  = 0;

            mGraficosZ = pictureBoxes[0].CreateGraphics();
            mGraficosX = pictureBoxes[1].CreateGraphics();
            mGraficosY = pictureBoxes[2].CreateGraphics();
            PointF[] puntosEntreLineas;
            DeterminarPuntos();
            //Perpspectiva Z Lado Izquierdo
            PointF[] puntosAC;
            PointF[] puntosCE;
            PointF[] puntosIzquierda;
            puntosAC        = Bresenham.ObtenerPuntos(mA, mC, rango);
            puntosCE        = Bresenham.ObtenerPuntos(mC, mE, rango);
            puntosIzquierda = puntosAC.Concat(puntosCE).ToArray();
            //Perpspectiva Z Lado Derecho
            PointF[] puntosBD;
            PointF[] puntosDF;
            PointF[] puntosDerecha;
            puntosBD      = Bresenham.ObtenerPuntos(mB, mD, rango);
            puntosDF      = Bresenham.ObtenerPuntos(mD, mF, rango);
            puntosDerecha = puntosBD.Concat(puntosDF).ToArray();

            veri = puntosDerecha.Length - 1;

            do
            {
                mPen = SeleccionarColor(color);
                puntosEntreLineas = Bresenham.ObtenerPuntos(puntosIzquierda[veri], puntosDerecha[veri], puntosDerecha.Length);
                for (int k = puntosDerecha.Length - 1, j = 0; k > 0; k--, j++)
                {
                    Thread.Sleep(this.velocidad);
                    //Z
                    mGraficosZ.DrawLine(mPen, puntosIzquierda[k], puntosDerecha[k]);
                    listas[0].Items.Add(puntosIzquierda[k].X.ToString()); listas[1].Items.Add(puntosIzquierda[k].Y.ToString());
                    listas[2].Items.Add(puntosDerecha[k].X.ToString()); listas[3].Items.Add(puntosDerecha[k].Y.ToString());
                    //Y
                    Point pixel = new Point();
                    pixel.X = (int)puntosEntreLineas[k].X;
                    pixel.Y = (int)puntosEntreLineas[k].Y;
                    listas[4].Items.Add(puntosIzquierda[k].X.ToString()); listas[5].Items.Add(puntosIzquierda[k].Y.ToString());
                    listas[6].Items.Add(puntosDerecha[k].X.ToString()); listas[7].Items.Add(puntosDerecha[k].Y.ToString());
                    listas[12].Items.Add(pixel.X + "," + pixel.Y);
                    Rectangle rect = new Rectangle(pixel, new Size(1, 1));
                    mGraficosY.DrawRectangle(mPen, rect);
                }
                mGraficosX.DrawLine(mPen, puntosIzquierda[veri], puntosDerecha[veri]);
                listas[8].Items.Add(puntosIzquierda[veri].X.ToString()); listas[9].Items.Add(puntosDerecha[veri].Y.ToString());
                listas[10].Items.Add(puntosDerecha[veri].X.ToString()); listas[11].Items.Add(puntosDerecha[veri].Y.ToString());
                veri--;
            } while (veri != 0);


            /*mGraficosZ.DrawLine(mPen, mA, mB);
            *  mGraficosZ.DrawLine(mPen, mA, mC);
            *  mGraficosZ.DrawLine(mPen, mB, mD);
            *  mGraficosZ.DrawLine(mPen, mC, mE);
            *  mGraficosZ.DrawLine(mPen, mD, mF);
            *  mGraficosZ.DrawLine(mPen, mE, mF);*/
        }