计算机图形学 C#区域填充

计算机图形学 C#区域填充,第1张

填充算法满复杂的,常用的有活动边表填充,我以前也尝试用c#做图形学的程序。现在假设你知道填充算法,需要注意的是,c#中Graphics类没有setPixel()方法。你需要创建一个image(位图)对象,在位图中进行填充,然后再用Graphics类中的setImage()方法将位图显示在屏幕中。大概是这样,时间很长了,里面一些方法可能不太对,详细你查msdn,祝你成功!

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

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

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

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

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


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

原文地址:https://www.54852.com/yw/11980680.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存