void DibujarCentro(int x, int y) { for (int i = -k; i <= k; i++) { for (int j = -k; j <= k; j++) { Grafo.SetPixel(x + i, y + j, Rojo); pictureBox1.Image = Grafo; } } }
List <Point> DDA() { double m = ((double)p_f.Y - (double)p_0.Y) / ((double)p_f.X - (double)p_0.X); double b = (double)p_0.Y - (double)m * (double)p_0.X; double y_i, x_i; bool band = false; bool band2 = false; int inc = 1; Point Coordenadas; List <Point> Linea = new List <Point>(); Coordenadas = new Point(); if (Double.IsInfinity(m)) { if (p_0.Y > p_f.Y) { inc = -1; } for (y_i = p_0.Y; (int)y_i != p_f.Y; y_i += inc) { x_i = p_0.X; colorpixel = Picture.GetPixel((int)Math.Round(x_i), (int)y_i); if (colorpixel == Blanco) { band = true; } if (colorpixel != Blanco && band == true) { band2 = true; } if (colorpixel == Blanco && band2 == true) { return(null); } } for (y_i = p_0.Y; (int)y_i != p_f.Y; y_i += inc) { x_i = p_0.X; Coordenadas.X = (int)x_i; Coordenadas.Y = (int)y_i; Linea.Add(Coordenadas); Grafo.SetPixel(Coordenadas.X, Coordenadas.Y, Color.Black); } return(Linea); } if (m <= 1 && m >= -1) { if (p_0.X > p_f.X) { inc = -1; } for (x_i = p_0.X; (int)x_i != p_f.X; x_i += inc) { y_i = m * x_i + b; colorpixel = Picture.GetPixel((int)x_i, (int)Math.Round(y_i)); if (colorpixel == Blanco) { band = true; } if (colorpixel != Blanco && band == true) { band2 = true; } if (colorpixel == Blanco && band2 == true) { return(null); } } for (x_i = p_0.X; (int)x_i != p_f.X; x_i += inc) { y_i = m * x_i + b; Coordenadas.X = (int)x_i; Coordenadas.Y = (int)Math.Round(y_i); Linea.Add(Coordenadas); Grafo.SetPixel(Coordenadas.X, Coordenadas.Y, Color.Black); } return(Linea); } else { if (p_0.Y > p_f.Y) { inc = -1; } for (y_i = p_0.Y; (int)y_i != p_f.Y; y_i += inc) { x_i = (y_i - b) / m; colorpixel = Picture.GetPixel((int)Math.Round(x_i), (int)y_i); if (colorpixel == Blanco) { band = true; } if (colorpixel != Blanco && band == true) { band2 = true; } if (colorpixel == Blanco && band2 == true) { return(null); } } for (y_i = p_0.Y; (int)y_i != p_f.Y; y_i += inc) { x_i = (y_i - b) / m; Coordenadas.X = (int)Math.Round(x_i); Coordenadas.Y = (int)y_i; Linea.Add(Coordenadas); Grafo.SetPixel(Coordenadas.X, Coordenadas.Y, Color.Black); } return(Linea); } }