MFC区域填充

MFC区域填充,第1张

无论是对什么图形进行填充,或者构造任何区域,其本质就是将这片区域的每一个像素的属性表达出来。。。

既然你已经确认了5个点的坐标,那么就是平常人们用手来画五角星的过程,你应该是会的。一共画5笔,从最左边的点开始,先到最右边的点,再到左下角的点,再到最上面的点,再到右下角的点,最后返回最左边的点把图形闭合。如此用LineTo()将五角星闭合。

如此一来,就会形成6个闭合的图形,分别是5个以5个点为一点的三角形,和中心的5边型。将这5个图形中的所有像素全部填充为红色即可。

填充的算法有很多,像是三角形和矩形,都有现成的API进行填充。对于中间的五边形,可以采用矩阵边缘检测的方法取得空白矩阵向量然后填色(这也是最有效的算法);也可以采用接近逼近法来填充,就是在五边形的内部生成无数个红色的小三角形,将五边形填充满;也可以采用覆盖法来填充(前提是正五角星),就是用数学公式算出五角星的内接圆,把这个圆形填充为红色即可。

我建议你将整幅画布按照矩阵的方式进行 *** 作,最后用BitBlt扫描到前台,这些 *** 作都会异常简单。。。

添加键盘按下的消息映射,判断是不是112(F1的键盘值),是则用

GetDlgItem(txt1的ID)->SetWindowText(_T("1"))

GetDlgItem(txt2的ID)->SetWindowText(_T("2"))

GetDlgItem(txt3的ID)->SetWindowText(_T("3"))

GetDlgItem(txt4的ID)->SetWindowText(_T("4"))

UpDatadate()


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11452507.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存