BGRABitmap tutorial 6/es

From Lazarus wiki
Jump to navigationJump to search

Deutsch (de) English (en) español (es) français (fr)


Home | Tutorial 1 | Tutorial 2 | Tutorial 3 | Tutorial 4 | Tutorial 5 | Tutorial 6 | Tutorial 7 | Tutorial 8 | Tutorial 9 | Tutorial 10 | Tutorial 11 | Tutorial 12 | Edit

Esta tutoría muestra como usar diferentes tipos de líneas y figuras.

Crear un nuevo proyecto

Crea un nuevo proyecto y añade referencia a BGRABitmap, de la misma forma que en la primer tutoría.

Añade un manejador de pintado

Con el inspector de objetos, añade un manejador OnPaint y escribe :

procedure TForm1.FormPaint(Sender: TObject);
var image: TBGRABitmap;
    c: TBGRAPixel;
begin
  image := TBGRABitmap.Create(ClientWidth, ClientHeight, clBtnFace);
  c := clWindowText; 

  image.RectangleAntialias(80,80,300,200, c, 50);

  image.Draw(Canvas,0,0,True);
  image.free;
end;

Ejecuta el programa

Esto debe dibujar un rectángulo con un lápiz negro ancho.

BGRATutorial6a.png

Cambiar estilo de unión

Si desea esquinas redondeadas, puede especificar:

    image.JoinStyle := pjsRound;

Ejecuta el programa

Esto debe dibujar un rectángulo con un lápiz negro ancho con esquinas redondeadas.

BGRATutorial6b.png

Mezclar estilos de unión

Usted puede mezclar estilos de unión en un rectángulo como este:

    image.FillRoundRectAntialias(80,80,300,200, 20,20, c, [rrTopRightSquare,rrBottomLeftSquare]);

Esta función utiliza esquinas redondeadas de forma predeterminada, pero se puede reemplazar con esquinas rectas o curvas bisel. Usted debe obtener la siguiente imagen.

BGRATutorial6e.png

Cambiar el estilo de la pluma

Usted puede dibujar una línea de puntos así:

    image.JoinStyle := pjsBevel;
    image.PenStyle := psDot;
    image.DrawPolyLineAntialias([PointF(40,200), PointF(120,100), PointF(170,140), PointF(250,60)],c,10);

Usted debe obtener la siguiente imagen. Observe que la línea comienza con una tapa redonda.

Tutorial6c.png

Cambio extremo de línea

Puede dibujar una polilínea con una tapa cuadrada de esta manera:

    image.JoinStyle := pjsBevel;
    image.LineCap := pecSquare;
    image.PenStyle := psSolid;
    image.DrawPolyLineAntialias([PointF(40,200), PointF(120,100), PointF(170,140), PointF(250,60)],c,10);

BGRATutorial6d.png

Dibujo de línea abierta

Usted puede dibujar una línea que se abre, es decir, el final de la línea se completa en el interior.

    image.DrawPolyLineAntialias([PointF(40,200), PointF(120,100), PointF(170,140), PointF(250,60)],c,10,False);

BGRATutorial6f.png

De esta manera usted puede conectar líneas, uno tras otro sin llamar la unión en dos ocasiones, lo cual es útil con el dibujo semi-transparente. Se puede comparar la siguiente manera:

    c := BGRA(0,0,0,128);

    image.DrawLineAntialias(40,150, 120,50, c, 10);
    image.DrawLineAntialias(120,50, 170,90, c, 10);
    image.DrawLineAntialias(170,90, 250,10, c, 10);

    image.DrawLineAntialias(40,250, 120,150, c, 10, False);
    image.DrawLineAntialias(120,150, 170,190, c, 10, False);
    image.DrawLineAntialias(170,190, 250,110, c, 10, True);

Tutorial6g.png

Tutoría anterior (capas y máscaras) | Siguiente tutoría (splines)