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

Вход на сайт

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

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

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

Выдаёт ошибку glut32.dll не найден! При том, что он лежит в System32! Всё решил) Нужно отправить не в System32, а в System.
Спасибо за статью. Я не Ваш студент. Но мне она помогла написать функцию для Канторова множества на Python для черепашки: import turtle def kanter(x, y, d):     if d > 1:         turtle...
Как реализовать в данном примере границы расчёта?

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

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

#include <glut.h>
#include <math.h>
#include <stdlib.h>
#include <iostream>
 
using namespace std;
 
float aut, aut2, aut3, aut4;//клины
float x, y;//координаты
float angle;//параметр отвечающий за вращение
 
//сохранение пропорций
void proporsion(int w, int h)
{
	if (h==0)
	{
		h=1;
	}
	float ratio = float(w)/h;
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	gluPerspective(45,ratio,500,500);
	glMatrixMode(GL_MODELVIEW);
}
 
//рисование
void paint(void)
{
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);// очистка буфера
 
			//первый четырехугольник
			glPushMatrix();//сохранение матрицы
			glRotatef(angle, 0,0, 1);//поворот
			glBegin(GL_QUADS);//рисуем квадрат
			glColor3ub(0+aut3,255-aut3,0);//цвет
			glVertex2f(-4,-1);
			glVertex2f(-4,1);
			glVertex2f(4,1);
			glVertex2f(4,-1);
			glEnd();
			// второй
			glBegin(GL_QUADS);
			glColor3ub(0+aut3,255-aut3,0);
			glVertex2f(-1,-4);
			glVertex2f(-1,4);
			glVertex2f(1,4);
			glVertex2f(1,-4);
			glEnd();
 
			glPopMatrix();
 
			glutSwapBuffers();
 
}
//установка таймера
void Timer(int)
{
	angle += 0.5 - aut;//вращение
	aut3 += 1.5 - aut4;//становление красным
	if (aut3 > 245)//когда красный
	{
		aut4 = 6.5;//становление зеленым
	}
	if (aut3 < 5)//когда зеленый
	{
		aut4 = 0;//обнуляю параметры
	}
	if (angle > 44 && angle < 45)//когда повернулся на 44.5 градусов
	{
		aut = 0.5;//клин
		aut2 = aut2 + aut;//счетчик
		if(aut2 > 20)//пауза, обнуление параметров
		{
			aut2 = 0;
			aut = 0;
		}
	}
	if (angle > 85 && angle < 95)//когда повернулся в начальное положение обнуляю параметры
	{
		angle = angle - 90;
	}
	glutTimerFunc(15,Timer,0);//обновлять экран каждые 15мсек
	glutPostRedisplay();
}
 
int main(int argc, char **argv) {
 
	// инициализация
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);//double: буфер рисования и буф сторонних вычислений
	glutInitWindowPosition(100, 100);//позиция окна
	glutInitWindowSize(500, 500);//размеры окна
	glutCreateWindow("Крест");//название окна
	glClearColor(0.0, 0.0, 0.0, 1.0);//цвет окна
	glOrtho(-5.0, 5.0, -5.0, 5.0, -5.0, 5.0);//установка границ
 
	glutDisplayFunc(paint);//вызов функции рисования
	glutReshapeFunc(proporsion);//вызов функции сохранения пропорций
	glutTimerFunc(0,Timer,0);//вызов таймера
	glutMainLoop();//основной цикл
	return 1;
}

Прикрепленный файлРазмер
BrunsKrest.rar945.66 кб