PolyPolyLine

PolyPolyline(
DC: HDC; {设备环境句柄}
var Points; {点数组}
var nPoints;{数组, 数组元素是每个组的顶点数}
p4: Integer {分组数, 也就是 nPoints 的元素数}
): BOOL;
--------------------------------------------------------------------------------

//举例:
procedure TForm1.FormPaint(Sender: TObject);
var
ps: array[0..9] of TPoint;
pn: array[0..1] of Integer;
begin
{组1:}
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;
{组2:}
ps[6].X := 200;
ps[6].Y := 25;
ps[7].X := 300;
ps[7].Y := 25;
ps[8].X := 300;
ps[8].Y := 125;
ps[9].X := 200;
ps[9].Y := 125;

pn[0] := 6; {组1有6个顶点}
pn[1] := 4; {组2有4个顶点}

PolyPolyline(Canvas.Handle, ps, pn, 2);
end;

描述:
有10个点,分两组话,前6个一组,后4个一组。

说明2
BOOL PolyPolyline(
HDC hdc, // handle to device context
CONST POINT *lppt, // array of points
CONST DWORD *lpdwPolyPoints, // array of values
DWORD cCount // number of entries in values array
);

 

lpdwPolyPoints表示了如何对lppt中的点进行分组。每一组构成一个折线。

 

比如在lppt中指定了14个点,此时 lpdwPolyPoints 可以是 [2, 3, 5, 4], cCount为4, 表
示这14个点被分作4组,即前2个点为一组,接下来3个点为一组,依次类推,共4组。lpdwPo
lyPoints中每个值都要大于等于2,避免出现孤立的点。

 

绘制时,按照分组分别将各点用线段连接起来。组和组不会自动用线段连接起来。这个函数
的功能可以认为是“批量绘制折线”。通过设置正确的分组和坐标,可以实现很多效果:比
如一次绘制n个多边形等。

转载于:https://www.cnblogs.com/spiritofcloud/p/3982640.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值