Ранее я задавал вопрос о добавлении координат кликов в односвязный список, чтобы l oop через связанный список, расположить вершины в местах щелчков и соединить их
Полученный ответ решил мои проблемы с переполнением связанного списка, но впоследствии у меня возникли проблемы с функцией отображения, например, когда il oop просматривал связанный список и добавлял те координаты glVertex2i();
, он не рисует полосу, когда я нажимаю несколько раз в графическом окне.
Я пытался увидеть, что произойдет, если я удалю while
l oop, но это вызовет ошибку сегментации.
Это структуры.
typedef struct vector{int x;int y;}Vector;
typedef struct VectorList{Vector X; struct VectorList*next; }node_v;
И я объявил эти
Vector P;
node_v * prev;
И с помощью ответа на мой предыдущий вопрос , инициализированный Vector P
с координатами кликов и добавленный в связанный список векторов node_v * prev;
static void _display_CB()
{
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glOrtho(0,window_width,window_height,0,-1,1);
glClear(GL_COLOR_BUFFER_BIT);
glColor3ub(0,0,0);
glBegin(GL_LINE_STRIP);
while(prev){
glVertex2i( prev->X.x, prev->X.y);
prev=prev->next;
}
glEnd();
glFlush();
glutSwapBuffers();
glutPostRedisplay();
}
Какие изменения нужно сделать в _display_CB()
для программа для рисования полос, как на картинке?