2014-11-16 2 views
0

у меня есть этот код, который предполагается сделать ряд точек на экране:GL_POINTS рисунок только один пункт вместо многих

glBegin(GL_POINTS); 
    for(int i = 0; i < x; i++) 
    { 
     for(int j = 0; j < y; j++) 
     { 
      glColor3f(0,0,0); 
      glVertex3f(array1[i][j], array2[i][j], array3[i][j]); 
      cout<<array1[i][j]<<" "<<array2[i][j]<<" "<<array3[i][j]<<endl; 
     } 
    } 

glEnd(); 

я получить только одну точку на экране. Я не представляю, как это происходит. Я печатаю значения массива, они все разные, но я получаю только одну точку вместо нескольких сотен точек. Можете ли вы сказать, что не так с этим кодом?

+2

Какой диапазон имеют ваши точки вдоль x и y? Может быть, только один из ваших очков находится в видимом диапазоне? – BDL

+0

@BDL они варьируются от 25 до 0. Спасибо. – jason

+2

Если вы не используете какие-либо проекции, видимый диапазон от -1 до 1. Вы можете изменить это, например, используя glOrtho – BDL

ответ

2

Возможно, что только один пункт из вашего набора данных попадает в окно просмотра или что все точки в конечном итоге проецируются только на один видимый пиксель. В любом случае вы должны проверить свой проекционный диапазон. Вы можете извлечь ограничительную рамку своего набора данных, а set the viewing volume - немного больше.