GDI+ 学习记录(16) 贝塞尔曲线 - Bezier、Beziers

//画贝塞尔曲线
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;

转载于:https://www.cnblogs.com/keyvip/archive/2010/12/08/1900485.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值