OpenGL实现多边形扫描转换的扫描线算法

原创 2007年06月16日 22:09:00

  学习过程中的一个小小笔记^_^

 

主要内容:
1、编写程序实现多边形扫描转换的扫描线算法
–– 多边形的输入(鼠标)
–– 非自相交多边形
–– 三角形的特殊性
2、利用OpenGL函数实现柱状图和饼图函数
 
实现步骤:
1、 初始化OpenGL环境
2、 构建几何类及其肋间关系,如图:
 
3、以父类CGraph 指针管理界面上的各种图形,即各种图形由CGraph 指针构成链表,如:struct GraphList
{//图形链表
    glGraph* m_graph;//图形
    GraphList* m_next;//下一节点
};
只要在链表中找到相应图形,通过强制转换便可对其操作,如:CGraph* tail;
((glPolygon*)tail->m_graph)->AddPoint(x,y);//添加多边形顶点
4、 因为图形的画操作是共性,所以利用父类的纯虚函数,子类再重载而实现,如:
父类CGraph 定义 virtual void Draw() = 0;
各子类重载 void Draw(); 就可实现各种图形的画法
 
 
扫描转换的实现:
1、 通过CreatET()构建边分类表,其中以变量ymin,ymax纪录当前多边形顶点中最小与最大的y坐标值,所以扫描线从ymin扫到ymax就可结束。
2、 置空AEL
3、 按算法步骤填充多边形。
 

 源码下载:http://download.csdn.net/source/195447

相关文章推荐

openGL画三角形---openGL学习笔记(四)

在openGL中,所有面状图形的绘制都是使用画三角形方法,而针对不同需求,openGL给出三种不同的画三角形方法: ①traingles:画三角形集 ②traingle_strip:画三角...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

多边形的扫描转换与区域填充算法

(1)算法步骤: X——扫描线算法填充多边形的原理见下图。每一条扫描线被多边形分成几段,每一段要么在多边形内,要么在多边形外,在内的填充(用线型、点或颜色),在外的则舍弃。 图3-1  X---...

多边形的扫描转换算法

1. 目的:输入多边形顶点,对多边形进行填充,使用多边形扫描转换算法; 2. 实现: const int POINTNUM=6; //多边形点数. /******定义...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

opengl实现直线扫描算法和区域填充算法

1、 采用直线扫描算法绘制一条线段,直线由离散点组成 2、 利用区域填充算法绘制多边形区域,区域由离散点组成...

计算机图形学--多边形扫瞄转换与区域填充实现

多边形的扫描转换与区域填充。     我选了两个算法实现:        1.多边形扫描转换的X轴扫描线算法        2.区域填充的边界填充算法(填充水平扫描线)。 一、设计思想 多边形扫描...

计算机图形学(二)输出图元_11_OpenGL多边形填充区函数(上)

描述填充多边形的OpenGL过程与描述点和折线类似,但有一个例外。函数glVertex用来输入多边形的一个顶点坐标,而完整的多边形用从glBegin到glEnd之间的一组顶点来描述。但有另外一个函数可...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OpenGL实现多边形扫描转换的扫描线算法
举报原因:
原因补充:

(最多只允许输入30个字)