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

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

 

主要内容:
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

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值