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

    技术2022-05-11  16

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

     

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


    最新回复(0)