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(); //Perspectiva Z por la izquierda PointF[] puntosAE; PointF[] puntosED; PointF[] puntosIzquierda; puntosAE = Bresenham.ObtenerPuntos(mA, mE, rango); Recorrer(puntosAE, (int)rango / 2); puntosED = Bresenham.ObtenerPuntos(mE, mD, rango); puntosIzquierda = puntosAE.Concat(puntosED).ToArray(); //Perspectiva Z por la derecha PointF[] puntosBC; PointF[] puntosCD; PointF[] puntosDerecha; puntosBC = Bresenham.ObtenerPuntos(mB, mC, rango); Recorrer(puntosBC, (int)rango / 2); puntosCD = Bresenham.ObtenerPuntos(mC, mD, rango); puntosDerecha = puntosBC.Concat(puntosCD).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); }