Уроки, алгоритмы, программы, примеры

Материалы по разделам

Построения
на плоскости (2D)
Графика
в пространстве (3D)
Вычислительная
геометрия
Физическое
моделирование
Фрактальная
графика

Новые комментарии

У меня проблема вот с этим: gl.Clear(OpenGL.GL_COLOR_BUFFER_BIT | OpenGL.GL_DEPTH_BUFFER_BIT);. Вылезает ошибка: CS1061 "object" не содержит определения "GL_COLOR_BUFFER_BIT", и не удалось найти доступный метод расширения "GL_COLOR_BUFFER_BIT",...
Большое спасибо. Единственный код который прошел без каких либо ошибок. Ура!!!
Скажите пожалуйста, подскажите алгоритм по которому по заданным точкам можно определить тип многогранника, скажем это куб или прямоугольный параллелепипед. Нашел теорию по этим фигурам: https://www.mat... https://www.mat... Акцентировать внимание...
Всем у кого не работает. файл wizard.script Ещё одно упоминание Glut32 в строке "if (!VerifyLibFile(dir_nomacro_lib, _T("glut32"), _T("GLUT's"))) return false;" меняем на "if (!VerifyLibFile(dir_nomacro_lib, _T("freeglut"), _T("GLUT's"))) return...
Не получается, емаё

Счетчики и рейтинг

Рейтинг@Mail.ru Яндекс.Метрика
Язык программирования: 
C/C++
Среда программирования: 
Microsoft Visual Studio 2013

#include <GL/glut.h>
#include<Windows.h>
int rot = 0;//переменная обозначающая угол поворота
int i = 0;//переменная изменяющая цвет
int r = 65;//начальное значение красного цвета
int g = 150;//начальное значение зеленого
void Draw()// функция рисования
{
 
	glClear(GL_COLOR_BUFFER_BIT);//очистка
	glColor3ub(r+i, g-i,0);//изменение цвета 
	glPushMatrix();//сохраняем матрицу нашей фигуры
	glRotatef(-rot, 0.0, 0.0, 1.0);//поворачиваем нашу фигуру
	glBegin(GL_QUADS);//рисуем вертикальный прямоугольник
	glVertex2f(-40.0,-150.0);
	glVertex2f(-40.0, 150.0);
	glVertex2f(40, 150.0);
	glVertex2f(40, -150.0);
	glEnd();
 
	glBegin(GL_QUADS);//рисуем горизонтальный прямоугольник
	glVertex2f(-150.0, -40.0);
	glVertex2f(-150.0, 40.0);
	glVertex2f(150.0, 40.0);
	glVertex2f(150.0, -40.0);
	glEnd();
	glPopMatrix();//восстановление матрицы нашей фигуры
 
	if (rot <= 45)
		i += 3;//изменение от зеленого цвета к красному
	if (rot > 46)
		i -= 3;//изменение от красного цвета к зеленому
	glutSwapBuffers();
 
}
 
void Timer(int value)//таймер
{   rot += 1;// изменение угла поворота
	if (rot == 45)
	{
		Sleep(500);//пауза на 0.5 сек 
		//крест красного цвета
		r = 200;
		g = 15;
		i = 0;
	}
	if (rot == 90)
	{
		Sleep(500);
		// крест зеленого цвета
		r = 65;
		g = 150;
		rot = 0;
		i = 0;
	}
	glutPostRedisplay();// обновляем экран 
	glutTimerFunc(15, Timer, 0);// обновляем экран каждые 15 мсек
}
void Initialize()
{
	glClearColor(0.0, 0.0, 0.0, 1.0);//очищаем фон цветом
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	glOrtho(-200.0, 200.0, -200.0 , 200.0, -200.0, 200.0);//рисуем координатную сеть, где середина экрана точка(0,0,0)
	glMatrixMode(GL_MODELVIEW);
	glMatrixMode(GL_MODELVIEW);
 
 
}
int main(int argc, char **argv)
{
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);// буфер рисования и буф сторонних вычислений
	glutInitWindowSize(400, 400);//размеры окна
	glutInitWindowPosition(100, 200);//позиция окна
	glutCreateWindow("Prohibiting Cross");//название окна
	glutDisplayFunc(Draw);//вызов функции рисования
	Initialize();//вызов функции инициализации окна
	glutTimerFunc(50, Timer, 0);//вызов таймера
	glutMainLoop();//основной цикл
 
	return 0;
}

Прикрепленный файлРазмер
Samokhin_Prohibiting_Cross.rar279.28 кб