WinAPI: PolylineTo - 绘制一组连续线段(更新当前位置)

本文介绍了使用PolylineTo函数绘制多边形的原理与实践,包括如何设置起始点及如何利用该函数更新当前位置继续绘图。通过示例代码展示了不同场景下的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//声明:
PolylineTo(
  DC: HDC;       {设备环境句柄}
  var Points;    {点数组}
  Count: Integer {数组元素个数}
): BOOL;


//如果不给 PolylineTo 指定起点, 将默认 0 点位起点
procedure TForm1.FormPaint(Sender: TObject);
var
  ps: array[0..5] of TPoint;
begin
  ps[0].X := 50;
  ps[0].Y := 50;
  ps[1].X := 100;
  ps[1].Y := 50;
  ps[2].X := 125;
  ps[2].Y := 75;
  ps[3].X := 100;
  ps[3].Y := 100;
  ps[4].X := 50;
  ps[4].Y := 100;
  ps[5].X := 25;
  ps[5].Y := 75;

  PolylineTo(Canvas.Handle, ps, 6);
end;

 
//效果图:
r_829n.png
//给 PolylineTo 指定起点
procedure TForm1.FormPaint(Sender: TObject);
var
  ps: array[0..4] of TPoint;
begin
  MoveToEx(Canvas.Handle, 50,50, nil);
  
  ps[0].X := 100;
  ps[0].Y := 50;
  ps[1].X := 125;
  ps[1].Y := 75;
  ps[2].X := 100;
  ps[2].Y := 100;
  ps[3].X := 50;
  ps[3].Y := 100;
  ps[4].X := 25;
  ps[4].Y := 75;

  PolylineTo(Canvas.Handle, ps, 5);
end; 


//效果图:
r_829o.png
//PolylineTo 更新当前位置
procedure TForm1.FormPaint(Sender: TObject);
var
  ps: array[0..4] of TPoint;
begin
  MoveToEx(Canvas.Handle, 50,50, nil);
  
  ps[0].X := 100;
  ps[0].Y := 50;
  ps[1].X := 125;
  ps[1].Y := 75;
  ps[2].X := 100;
  ps[2].Y := 100;
  ps[3].X := 50;
  ps[3].Y := 100;
  ps[4].X := 25;
  ps[4].Y := 75;

  PolylineTo(Canvas.Handle, ps, 5);

  {PolylineTo 更新当前位置, 继续画}
  LineTo(Canvas.Handle, 50,50);
end;


//效果图:
r_829p.png

转载于:https://www.cnblogs.com/del/archive/2008/02/09/1066377.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值