QT中填充不规则区域的问题

lx624909677 2015-06-29 03:11:11

上图中红色的线条是用drawLine函数一点一点绘制的,是一个闭合区域,请问这样的区域想要填充一个颜色,该如何做的呢?下面的代码是绘制红色线条的主要代码,就是用下面的代码一点一点的绘制成一个不规则区域的
QPen pen = painter->pen();
int width = pen.width();
pen.setWidth(lineWidth);
painter->setPen(pen);
painter->drawLine(oldPt, p3_1234);
pen.setWidth(width);
painter->setPen(pen);
oldPt = p3_1234;
...全文
932 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lx624909677 2015-07-01
  • 打赏
  • 举报
回复
问题已解决,下面是解决方法: QPolygonF pts; QPainterPath path; for(int ip = 0; ip < ctrlPoints.size(); ++ ip) { pts.push_back(ctrlPoints[ip].iPoint); } path.addPolygon(pts); painter->fillPath(path,QBrush(Qt::blue)); 其中 ctrlPoints是之前的点集合
Inhibitory 2015-06-30
  • 打赏
  • 举报
回复
使用QPainterPath来绘制填充
lx624909677 2015-06-29
  • 打赏
  • 举报
回复
引用 3 楼 qq_29404841 的回复:
[quote=引用 2 楼 lx624909677 的回复:] [quote=引用 1 楼 lth93 的回复:] 以第一个点为支点,每绘制一小段曲线,填充这个三角形,每一个三角形的顶点都是那个支点;如果想绘制玩封闭区域再填充,用链表保存你所有的中间点
“每绘制一小段曲线,填充这个三角形”请问这里说的三角形是指什么呢?现在绘制这样的不规则区域是没问题的,我想知道绘制后填充的方法,所有点的坐标现在已经记录了下来了[/quote]上面已经说的很清楚了,三角形就是1,2,3 1,3,4 1,4,5 ,数字代表点序号,你既然保存了所有点,不是很好处理吗?[/quote] 就是我现在有这些点的集合了,填充是该如何填充呢?可否给个伪码作为参考,谢谢!
qq_29404841 2015-06-29
  • 打赏
  • 举报
回复
引用 2 楼 lx624909677 的回复:
[quote=引用 1 楼 lth93 的回复:] 以第一个点为支点,每绘制一小段曲线,填充这个三角形,每一个三角形的顶点都是那个支点;如果想绘制玩封闭区域再填充,用链表保存你所有的中间点
“每绘制一小段曲线,填充这个三角形”请问这里说的三角形是指什么呢?现在绘制这样的不规则区域是没问题的,我想知道绘制后填充的方法,所有点的坐标现在已经记录了下来了[/quote]上面已经说的很清楚了,三角形就是1,2,3 1,3,4 1,4,5 ,数字代表点序号,你既然保存了所有点,不是很好处理吗?
lx624909677 2015-06-29
  • 打赏
  • 举报
回复
引用 1 楼 lth93 的回复:
以第一个点为支点,每绘制一小段曲线,填充这个三角形,每一个三角形的顶点都是那个支点;如果想绘制玩封闭区域再填充,用链表保存你所有的中间点
“每绘制一小段曲线,填充这个三角形”请问这里说的三角形是指什么呢?现在绘制这样的不规则区域是没问题的,我想知道绘制后填充的方法,所有点的坐标现在已经记录了下来了
  • 打赏
  • 举报
回复
以第一个点为支点,每绘制一小段曲线,填充这个三角形,每一个三角形的顶点都是那个支点;如果想绘制玩封闭区域再填充,用链表保存你所有的中间点

16,816

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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