Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Solo lo sabrá el mejor: smooth en gráficos (https://www.clubdelphi.com/foros/showthread.php?t=48510)

paldave 26-09-2007 20:01:08

Solo lo sabrá el mejor: smooth en gráficos
 
¿Alguien sabe como se podría implementar el uso de las rutinas de DirectX u OpenGL que dibujan utilizando Smooth para utilizarlas en, por ejemplo, un Canvas?
Lo que quiero es dibujar una línea en un Canvas a 30 grados y que parezca una línea, no una escalera :p
Desde ya agradecido a quien pueda aportarme ideas.

xEsk 27-09-2007 03:28:30

Hola, si a lo que te refieres es a dibujar una recta no pixelada (antialiased line), aquí un ejemplo, pero si te refieres a una "curva", entonces quizás te interesa la función PolyBezier.

Ejemplo de PolyBezier usando la API:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  pts: Array[0..3] of TPoint;
begin
  pts[0] := Point(100,100);
  pts[1] := Point(150,300);
  pts[2] := Point(200, 50);
  pts[3] := Point(250, 175);

  { Dibuja la curva }
  PolyBezier(Canvas.Handle, pts, 4);

  { Muestra los puntos de la curva }
  Canvas.Rectangle(pts[0].x-3,pts[0].y-3,pts[0].x+3,pts[0].y+3);
  Canvas.Rectangle(pts[1].x-3,pts[1].y-3,pts[1].x+3,pts[1].y+3);
  Canvas.Rectangle(pts[2].x-3,pts[2].y-3,pts[2].x+3,pts[2].y+3);
  Canvas.Rectangle(pts[3].x-3,pts[3].y-3,pts[3].x+3,pts[3].y+3);
end;

Ejemplo de PolyBezier usando la función del TCanvas:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  Canvas.PolyBezier([Point(100,100), Point(150,300), Point(200, 50), Point(250, 175)]);
end;

Estas dos cosas son las que he interpretado de tu mensaje.

Saludos.


La franja horaria es GMT +2. Ahora son las 23:54:02.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi