Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Помогите понять почему в функции(со вложенным циклом) наружний не проходит 2-ой раз / 3 сообщений из 3, страница 1 из 1
24.09.2013, 00:29
    #38405389
YaroslavIII
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите понять почему в функции(со вложенным циклом) наружний не проходит 2-ой раз
В void DrawGLScene1() я пытаюсь реализовать шахматную доску, но почему то внутренний цикл проходит и прорисоввывается, а наружний (где переход на следующую строку) не проходит, или не применяет измения?..


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
#include <GL/glut.h>    // Заголовочный файл для GLUT Library 
#include <GL/gl.h>	// Заголовочный файл для OpenGL32 Library

/* Число наших GLUT-окон */
int window; 

/* Общая инициализация OpenGL. Задаются все исходные параметры. */
void InitGL(int Width, int Height)	        // We call this right after our OpenGL window is created.
{
	glClearColor(1.0f,1.0f,1.0f,0.0f); 	// Устанавливаем белый цвет фона
	glColor3f(0.0f, 0.0f, 0.0f);		// Устанавливаем чёрный цвет для рисования
	glPointSize(10.0);			// Устанавливаем размер рисуемых точек

	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();			// Сбрасываем матрицу проецирования
	gluOrtho2D(0.0, Width, 0.0, Height);	// Устанавливаем двумерный экран для проецирования
}

/* Основная функция рисования сцены. */
void DrawGLScene()
{
	glClear(GL_COLOR_BUFFER_BIT); 		// Очищаем экран
	glBegin(GL_LINE_LOOP);

	glVertex2i(1, 1);
	glVertex2i(1, 641);	
        glVertex2i(641, 641);   
        glVertex2i(641, 1);  		

	glEnd();
	glFlush();				// Отправляем весь вывод на дисплей
}
void DrawGLScene1()
{
	glClear(GL_COLOR_BUFFER_BIT); 		// Очищаем экран
	glBegin(GL_QUADS);
        int i,j,k,m;
k=81;
m=641;
for (i=1; i<9; i++)
{

for (j=1; j<5; j++)
{
	glVertex2i(k, m);
	glVertex2i(k, m-80);	
        glVertex2i(k+80, m-80);   
        glVertex2i(k+80, m);  
	k=k+160;
		
}
m=m-80;

}

	glEnd();
	glFlush();				// Отправляем весь вывод на дисплей
}

int main(int argc, char **argv) 
{  
	glutInit(&argc, argv);  		// Инициализация GLUT-состояния
	glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
						// Выбираем тип дисплея: 
						// одиночный режим буферизации, цветовая схема RGBA
	glutInitWindowSize(642, 642);  		// Устанавливаем размер окна
	glutInitWindowPosition(0, 0);  		// Устанавливаем положение окна на экране
	window = glutCreateWindow("Lesson 01"); // Создаём экранное окно
	glutDisplayFunc(&DrawGLScene);
        glutDisplayFunc(&DrawGLScene1);   	// Регистрируем функцию рисования
	InitGL(642, 642);			// Инициализируем экранное окно
	glutMainLoop();				// Входим в бесконечный цикл
	return 1;
}
...
Рейтинг: 0 / 0
24.09.2013, 00:49
    #38405401
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите понять почему в функции(со вложенным циклом) наружний не проходит 2-ой раз
YaroslavIIIm=m-80;
предполагаю, что после этого нужно также писать
Код: plaintext
1.
k=81;


Т.е. не только перевод строки, но и возврат каретки :)
...
Рейтинг: 0 / 0
24.09.2013, 05:28
    #38405443
YaroslavIII
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите понять почему в функции(со вложенным циклом) наружний не проходит 2-ой раз
Ой, спасибо большое)Что-то я совсем сонный был) Просто я еще if туда добавлял, чтобы через строчку переводил k, просто огромное спасибо, а я тормоз)
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Помогите понять почему в функции(со вложенным циклом) наружний не проходит 2-ой раз / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]