2014-12-02 5 views
-1

Учитывая код (из Scan-line fill OpenGL/GLUT algorithm in C++):C++ OpenGL сканирования линии алгоритм

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?

ответ

3

Это левый и правый краевые буферы. Они сохраняют минимальную и максимальную координаты X для каждой горизонтальной линии развертки.

500 - это только высота окна, как указано в glutInitWindowSize(500,500);.

 Смежные вопросы

  • Нет связанных вопросов^_^