Delphi 用区域画图形如何能抗锯齿!!

sinat_31964459 2017-04-01 04:16:13
delphi 中 采用区域画图,会产生锯齿。如何消除锯齿? (想用区域画法,不用路径画法)
如图所示:


代码如下:
g := TGPGraphics.Create(Canvas.Handle);
g.Clear(aclWhite);
g.SetSmoothingMode(SmoothingModeHighQuality); //指定平滑(抗锯齿)
g.SetInterpolationMode(InterpolationModeHighQuality);
drawPath.AddLine(pPoint1, FpMousePointDraw);
drawPath.AddLine(FpMousePointDraw, pPoint2);
drawPath.AddLine(pPoint2, pPoint1);
Rgn1 := TGPRegion.Create(drawPath);
g.FillRegion(brush,Rgn1);


各位牛人帮帮忙,提点意见。。。想了很久没找到解决办法!!!
...全文
1540 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
santiaodahan 2017-04-07
  • 打赏
  • 举报
回复
在同一个路径上添加图形或者把两个路径合并为一个,用AddPath,并且FillMode用FillModeAlternate(默认值)。
sinat_31964459 2017-04-07
  • 打赏
  • 举报
回复
或者有没有办法将这不规则区域转化为路径。。。。没想到个有效的办法。。。。。
sinat_31964459 2017-04-07
  • 打赏
  • 举报
回复
想画不规则图形,如果用路径画法的话,那么如果两者路径进行叠加,那该如何去除相交部分的路径。。。。试过多种办法无法去除,,,求指导。。。。
看那山瞧那水 2017-04-07
  • 打赏
  • 举报
回复
GDI+里,Region有Union,Xor,Exclude运算,Path不支持,但是通过Region运算后再得不到path。 一种方法是得到各个交点坐标,然后画出路径。 另一种对于简单的矩形,多边形,椭圆等形状的合并path,可以得到合并后的Path的关键点,然后通过判断,排除合并Path内的关键点,再通过剩余的关键点来绘制Path。 再一种对于复杂形状或任意形状的图形,那就比较复杂了,要采用复杂的算法才行。 参考下:http://blog.csdn.net/johnsuna/article/details/8472186(C#)
sinat_31964459 2017-04-07
  • 打赏
  • 举报
回复
我主要是想画个对话框,如下图所示,将左边的两个路径组成的图形,变成右边的图形。。。
看那山瞧那水 2017-04-02
  • 打赏
  • 举报
回复
都有路径了,干嘛不用FILLPATH()?
santiaodahan 2017-04-02
  • 打赏
  • 举报
回复
区域描述的像素被视为在区域的内部,而不考虑边缘,所以不支持抗锯齿。而路径画法支持抗锯齿,并且区域填充方式在区域范围较大时(大于当前显示窗口)性能更差,使用路径更好。

1,185

社区成员

发帖
与我相关
我的任务
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
  • GAME,图形处理/多媒体社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧