⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 polyfill.h

📁 关于多边形填充的C++实现
💻 H
字号:
#ifndef fill_h_
#define fill_h_
struct edge
{
	int y_max;//存放某条边的最大y值
	double x;    //存放某条边最小y值处的x坐标
	double deltx;//存放x的增量
	edge *next;
};
class CPfill
{
public:
	CPfill();
 //******************************************************************//
	//本函数是提供给外部的唯一一个使用本扫描线算法的接口,四个参数分别为:
	//多边形的顶点坐标、多边形的边数、绘图设备环境、填充颜色
    void polyfill(CPoint *point,int num,CDC *pdc,long color);
//*******************************************************************//
private:
	void creatET(CPoint *point,int num);  //建立边表,其中num存放欲填充的多边形的顶点个数
	void creatAET(int y);  //建立活动边表,y代表当前扫描线
	edge* insert(edge *head,edge *p);//把一个结点插入一个有序链表
private:
	int maxy;//存放多边形的顶点的最大y值
	int miny;//存放多边形的顶点的最小y值
	edge **edges;//存放边表
	edge *AET;//存放活化边表指针
public:
	~CPfill();
};
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -