Librería gráfica en delphi
Publicado por Noé Otero (1 intervención) el 10/02/2004 13:39:12
Hola. Estoy construyendo un cargador de ficheros .asc en modo wireframe, y necesito una librería gráfica de componentes visuales que sea capaz de dibujar líneas RÁPIDO. He escogido G32 (Graphics32). La idea es conseguir pintar líneas con la sencillez que se pintan en el canvas de cualquier objeto (una paintbox por ejemplo) pero más rápido. La pregunta es. ¿Cómo haría en G32 algo como...
Usar un componente de G32 como la TPaintBox para pintar en él.
Rellenar este componente (Fill) con un color de fondo (como con TCanvas.FillRect).
Dibujar líneas sobre el componente.
Este código podría explicar un poco mejor lo que deseo hacer:
procedure TForm1.FormCreate(Sender: TObject);
begin
// initialise the random
// number generator
Randomize;
end;
const NUM_LINES = 2000;
procedure TForm1.DrawLines;
var
i: Integer;
begin
for i := 0 to NUM_LINES - 1 do
begin
Canvas.Pen.Color :=
RGB(Random(256),
Random(256),
Random(256)
);
Canvas.LineTo
(Random(ClientWidth),
Random(ClientHeight));
end;
end;
(Code by Zarko Gajic from delphi.about.com)
Fíjense que este código pinta en el Canvas del formulario. Yo deseo pintar en el canvas de un componente visual, como una TPaintBox o una TImage (en realidad, su equivalente en G32).
EN CASO DE NO CONOCER LA FORMA DE HACER ESTO. ¿PODRÍAN RECOMENDARME ALGUNA OTRA LIBRERÍA DE GRÁFICOS?. Ha de ser rápida, preferentemente usando aceleración por hardware. Muchas gracias.
Usar un componente de G32 como la TPaintBox para pintar en él.
Rellenar este componente (Fill) con un color de fondo (como con TCanvas.FillRect).
Dibujar líneas sobre el componente.
Este código podría explicar un poco mejor lo que deseo hacer:
procedure TForm1.FormCreate(Sender: TObject);
begin
// initialise the random
// number generator
Randomize;
end;
const NUM_LINES = 2000;
procedure TForm1.DrawLines;
var
i: Integer;
begin
for i := 0 to NUM_LINES - 1 do
begin
Canvas.Pen.Color :=
RGB(Random(256),
Random(256),
Random(256)
);
Canvas.LineTo
(Random(ClientWidth),
Random(ClientHeight));
end;
end;
(Code by Zarko Gajic from delphi.about.com)
Fíjense que este código pinta en el Canvas del formulario. Yo deseo pintar en el canvas de un componente visual, como una TPaintBox o una TImage (en realidad, su equivalente en G32).
EN CASO DE NO CONOCER LA FORMA DE HACER ESTO. ¿PODRÍAN RECOMENDARME ALGUNA OTRA LIBRERÍA DE GRÁFICOS?. Ha de ser rápida, preferentemente usando aceleración por hardware. Muchas gracias.
Valora esta pregunta


0