C++ c++;opengl扫描线算法
给定代码(取自):C++ c++;opengl扫描线算法,c++,opengl,scanline,C++,Opengl,Scanline,给定代码(取自): void scanfill(浮点数x1、浮点数y1、浮点数x2、浮点数y2、浮点数x3、浮点数y3、浮点数x4、浮点数y4) { int-le[500],re[500],i,j; 对于(i=0;i它们是左右边缘缓冲区。它们存储每个水平扫描线上要填充的最小和最大X坐标 500是在glutInitWindowSize(500500);中指定的窗口高度 void scanfill(float x1,float y1,float x2,float y2,float x3,float
void scanfill(浮点数x1、浮点数y1、浮点数x2、浮点数y2、浮点数x3、浮点数y3、浮点数x4、浮点数y4)
{
int-le[500],re[500],i,j;
对于(i=0;i它们是左右边缘缓冲区。它们存储每个水平扫描线上要填充的最小和最大X坐标
500是在glutInitWindowSize(500500);
中指定的窗口高度
void scanfill(float x1,float y1,float x2,float y2,float x3,float y3,float x4,float y4)
{
int le[500],re[500],i,j;
for(i=0;i<500;i++)
le[i]=500,re[i]=0;
edgedetect(x1,y1,x2,y2,le,re);
edgedetect(x2,y2,x3,y3,le,re);
edgedetect(x3,y3,x4,y4,le,re);
edgedetect(x4,y4,x1,y1,le,re);
for(j=0;j<500;j++)
{
if(le[j]<=re[j])
for(i=le[j];i<re[j];i++)
draw_pixel(i,j);
}
}