MFC区域填充

设计一个屏幕窗口;确定五个点的坐标,在窗口内绘制出一个五角星。根据扫描填色算法或种子填色算法将五角星填充红色。谁有这样才程序或者做过这样的题目啊  有... 设计一个屏幕窗口;确定五个点的坐标,在窗口内绘制出一个五角星。根据扫描填色算法或种子填色算法将五角星填充红色。谁有这样才程序 或者做过这样的题目啊   有视频教程的更好 展开
 我来答
royrob16x8
2011-06-27 · TA获得超过524个赞
知道小有建树答主
回答量:139
采纳率:0%
帮助的人:108万
展开全部
无论是对什么图形进行填充,或者构造任何区域,其本质就是将这片区域的每一个像素的属性表达出来。。。
既然你已经确认了5个点的坐标,那么就是平常人们用手来画五角星的过程,你应该是会的。一共画5笔,从最左边的点开始,先到最右边的点,再到左下角的点,再到最上面的点,再到右下角的点,最后返回最左边的点把图形闭合。如此用LineTo()将五角星闭合。
如此一来,就会形成6个闭合的图形,分别是5个以5个点为一点的三角形,和中心的5边型。将这5个图形中的所有像素全部填充为红色即可。
填充的算法有很多,像是三角形和矩形,都有现成的API进行填充。对于中间的五边形,可以采用矩阵边缘检测的方法取得空白矩阵向量然后填色(这也是最有效的算法);也可以采用接近逼近法来填充,就是在五边形的内部生成无数个红色的小三角形,将五边形填充满;也可以采用覆盖法来填充(前提是正五角星),就是用数学公式算出五角星的内接圆,把这个圆形填充为红色即可。

我建议你将整幅画布按照矩阵的方式进行操作,最后用BitBlt扫描到前台,这些操作都会异常简单。。。
luosiyong
2011-06-27 · TA获得超过3256个赞
知道大有可为答主
回答量:1090
采纳率:0%
帮助的人:1626万
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式