//画贝塞尔曲线 var g: TGPGraphics; p: TGPPen; begin g := TGPGraphics.Create(Canvas.Handle); p := TGPPen.Create(MakeColor(255,0,0),2); g.DrawBezier(p, 11,11, 88,333, 99,0, 222,111); {参数是画笔与 4 个点的坐标} p.Free; g.Free; end;
//使用 TGPPoint 或 TGPPointF var g: TGPGraphics; p: TGPPen; const points: array[0..3] of TGPPoint = ((x:11; y:11), (x:88; y:333), (x:99; y:0), (x:222; y:111)); begin g := TGPGraphics.Create(Canvas.Handle); p := TGPPen.Create(MakeColor(255,0,0),2); g.DrawBezier(p, points[0], points[1], points[2], points[3]); {用了 4 个常数点} p.Free; g.Free; end;
var g:TGPGraphics; p:TGPPen; pts:array[0..6] of TGPPoint; //数组元素必须是 3 的倍数加 1 begin g:=TGPGraphics.Create(Canvas.Handle); g.Clear(aclWhite); p:=TGPPen.Create(aclRed,4); pts[0]:=MakePoint(30,44); pts[1]:=MakePoint(80,111); pts[2]:=MakePoint(88,222); pts[3]:=MakePoint(111,88); pts[4]:=MakePoint(132,222); pts[5]:=MakePoint(222,111); pts[6]:=MakePoint(256,11); g.DrawBeziers(p,PGPPoint(@pts),Length(pts)); p.Free; g.Free; end;