Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: XÑA en 13 de Agosto de 2010, 05:31:54 PM

Título: Dibujando graficos Outline con .Net
Publicado por: XÑA en 13 de Agosto de 2010, 05:31:54 PM
Necesitaba un método para dibujar Outlines, que seguro que más de una vez os ha pasado, y creo que he encontrado la manera ideal  :P

Gracias a Vicente, por supuesto, intento aprender las novedades del lenguaje que MS siempre intenta aportar, en lugar de continuar con lo que ya sé. Así que utilizando lambdas he conseguido ....¡EL METODO!


void DrawOutline(Graphics g, Brush brush, Brush outlineBrush, Action<Graphics,int,int,Brush> paintDelegate)
{
for (int ix = -1; ix <= 1; ix+=2)
{
for (int iy = -1; iy <= 1; iy+=2)
{
paintDelegate(g,ix,iy, outlineBrush);
}
}

paintDelegate(g,0,0, brush);
}


¿y cómo se utiliza? Bien, veamos un ejemplo:


// ¿Un Rectángulo relleno?
DrawOutline(g, colorHuella, Brushes.Black,
   (gr, ix, iy, brush) =>
      {
             gr.FillRectangle(brush, 50 + ix, 50 + iy, 20, 20);
      }
);

// ¿Texto?
DrawOutline(g, colorHuella, Brushes.Black,
   (gr, ix, iy, brush) =>
      {
             gr.DrawString("HOLA",Font,brush, 50 + ix, 50 + iy);
      }
);


¡Lo que quieras!  ;)

Título: Re: Dibujando graficos Outline con .Net
Publicado por: Vicente en 14 de Agosto de 2010, 01:55:05 AM
Que bonitas son las lambdas :) (te puedes ahorrar las llaves de las lambdas si solo ocupan una línea ;))