首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 其他相关 >

过度圆角的算法

2012-09-17 
过渡圆角的算法如图1,任意块(j, i),该块正上方(Top)的座标为(j, i-1),正左方(Left)的座标为(j-1, i),正右

过渡圆角的算法

如图1,任意块(j, i),该块正上方(Top)的座标为(j, i-1),正左方(Left)的座标为(j-1, i),正右方(Right)的座标为(j+1, i),正下方(Bottom)的座标为(j, i+)。

算法A(见图2):

如果其正上(下、左、右)方任意两相邻方(比如:正上方与正左方)同时为空心,则该块内部左上方裁除圆角(如:M1,)。为了描述方便,如图1中间橙色部分(j, i)块所示,M表示裁除,1表示左上方,2表示右上方,3表示右下方,4表示左下方,如M3表示右下方裁除圆角区)。类似的如图4之M2(裁除右上角)。

过度圆角的算法

 

算法B(见图3):

如果任意块(j, i), 其正上(下、左、右)方任意两相邻方(比如:正上方与正左方)同时为实,且该块的对角块TopLeft方向上的块(j-1, i-1)为空心,则该块的对角块之右下角添加一圆角(如:A3,同理,A表示添加,3表示右下角)。

类似如图4所示A2,因当前块(j, i)之正左方(j-1,i)块与正下方(j,i+)块同时为实心,且其对角块为空心,则其对角块之右上方添加圆角A2。

 

总之,圆角化的算法就是算法A与算法B了。

 

以下图5、图6为较典型的实例样式:

过度圆角的算法

 

事实上,上面图1-图4均为简化表示方式,如果按照算法A与算法B,最终的图示结果应该为图1' - 图4' 所示:

过度圆角的算法

 

最近太忙,时间有限,哪位大侠有空,将上述算法使用C#代码实现一下?代码贴在评论处或EMAIL给我(EMAIL:a3net@qq.com),谢了!

 

热点排行