首页 / 软件开发 / Delphi / Delphi的绘图功能[7] - PolyBezier、PolyBezierTo
Delphi的绘图功能[7] - PolyBezier、PolyBezierTo2011-12-15 cnblogs 万一unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{PolyBezier 至少需要四个点做参数; 不改变画笔的当前位置}procedure TForm1.Button1Click(Sender: TObject);
var
pts: array[0..3] of TPoint;
begin
Canvas.Pen.Width := 2;
Canvas.Pen.Color := clRed;
pts[0].X := 10; pts[0].Y := 10; {起点}
pts[1].X := 60; pts[1].Y := 10; {控制点1}
pts[2].X := 10; pts[2].Y := 100; {控制点2}
pts[3].X := 60; pts[3].Y := 100; {终点}
Canvas.PolyBezier(pts);
Canvas.Pen.Width := 1;
Canvas.Pen.Color := clWhite;
Canvas.LineTo(ClientWidth, ClientHeight);
end;
{PolyBezierTo 最少只需要需要三个点, 它把当前位置当作第一点; 会改变画笔的当前位 置}procedure TForm1.Button2Click(Sender: TObject);
var
pts: array[1..3] of TPoint; {从 1 开始的, 就 3 个元素}
begin
Canvas.Pen.Width := 2;
Canvas.Pen.Color := clRed;
Canvas.MoveTo(10 + 82, 10); {起点}
//pts[0].X := 10; pts[0].Y := 10;
pts[1].X := 60 + 82; pts[1].Y := 10; {控制点1}
pts[2].X := 10 + 82; pts[2].Y := 100; {控制点2}
pts[3].X := 60 + 82; pts[3].Y := 100; {终点}
Canvas.PolyBezierTo(pts);
Canvas.Pen.Width := 1;
Canvas.Pen.Color := clBlue;
Canvas.LineTo(ClientWidth, ClientHeight);
end;
end.