我觉得这道题和传统的用动规或者贪心等算法的题目不同。按照题目的意思,就是将被‘X’围绕的‘O’区域找出来,然后覆盖成‘X’。那问题就变成两个子问题:1.
找到‘O’区域,可能有多个区域,每个区域‘O’都是相连的;2. 判断‘O’区域是否是被‘X’包围。我采用树的宽度遍历的方法,找到每一个‘O’区域,...
分类:
其他好文 时间:
2014-04-28 18:42:42
阅读次数:
1708
边界标志算法1.对多边形的每一条边进行扫描转换,即对多边形边界所经过的象素作一个边界标志。2.填充对每条与多边形相交的扫描线,按从左到右的顺序,逐个访问该扫描线上的象素。取一个布尔变量inside来指示当前点的状态,若点在多边形内,则inside为真。若点在多边形外,则inside为假。Inside...
分类:
其他好文 时间:
2014-04-27 20:53:06
阅读次数:
698
1.DDA算法实现直线绘制(需先安装easyx,百度下载即可) 1 #include
"easyx.h" 2 #include "math.h" 3 #include "windows.h" 4 #include "stdio.h" 5
#include "stdlib.h" 6 #include ...
分类:
其他好文 时间:
2014-04-27 20:51:40
阅读次数:
777
1 #include 2 #include 3 using namespace std; 4 5 6
7 class myString 8 { 9 private: 10 string mainstr; 11 int size; ...
分类:
其他好文 时间:
2014-04-27 20:45:57
阅读次数:
591
中点椭圆算法(1)先讨论椭圆弧的上部分设(Xp,Yp)已确定,则下一待选像素的中点是(Xp+1,Yp-0.5)d1=F(Xp+1,Yp-0.5)=b2(Xp+1)2+a2(Yp-0.5)2-a2b2根据d1的符号来决定下一像素是取正右方的那个,还是右上方的那个。
若d1<0,中点在椭圆内,取正右方象...
分类:
其他好文 时间:
2014-04-27 17:28:30
阅读次数:
653
1.中点画圆算法(1)P为当前点亮象素,那么,下一个点亮的象素可能是P1(Xp+1,Yp)或P2(Xp+1,Yp+1)。(2)构造函数:F(X,Y)=X2+Y2-R2;则F(X,Y)=0(X,Y)在圆上;F(X,Y)0(X,Y)在圆外。设M为P1、P2间的中点,M=(Xp+1,Yp-0.5)有如下结...
分类:
其他好文 时间:
2014-04-27 17:18:18
阅读次数:
901
一、Cohen-Sutherland剪裁算法1.基本思想对于每条线段P1P2分为三种情况处理:(1)若P1P2完全在窗口内,则显示该线段P1P2。(2)若P1P2明显在窗口外,则丢弃该线段。(3)若线段不满足(1)或(2)的条件,则在交点处把线段分为两段。其中一段完全在窗口外,可弃之。然后对另一段重...
分类:
其他好文 时间:
2014-04-27 17:00:46
阅读次数:
921