Учитывая код (взят из Сканирование строки заполнения алгоритма OpenGL / GLUT в C ++):
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);
}
}
Каковы re[500]
а также le[500]
массивы? А почему 500?
Это буферы левого и правого края. Они хранят минимальную и максимальную координаты X, которые должны быть заполнены на каждой горизонтальной линии сканирования.
500 это просто высота окна, как указано в glutInitWindowSize(500,500);
,