如何画一条连续的贝塞尔曲线?
如何画一条连续的贝塞尔曲线?
我做的曲线不光滑,应当如何做呢?
下面是我做的小例子,请大侠们指点!
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
m_points:array[1..100] of TPoint;
m_n:integer;//点的数目
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
self.m_n:=0;
end;
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if self.m_n>=100 then exit;
self.m_points[self.m_n].x:=x;
self.m_points[self.m_n].y:=y;
self.Repaint;
self.Canvas.PolyBezier(Slice(self.m_points, self.m_n));
self.m_n:=self.m_n+1;
end;
end.