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

Вход на сайт

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

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

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

Как реализовать в данном примере границы расчёта?
Не работает, выводит это: Process terminated with status 4258096 (0 minute(s), 2 second(s)) при этом открывается консоль с тем же числом

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

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

#include <glut.h>
#include <math.h>
#include <stdlib.h>
#include <iostream>
 
using namespace std;
 
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);// очистка буфера
 
for(float i = 0; i <=5 ; i+=0.5)	
{
glBegin(GL_POLYGON);//рисуем  полигон
glColor3ub(0,0,0);//цвет
glVertex2f(-5+i,-5+i);
glVertex2f(-5+i,5-i);
glVertex2f(5-i,5-i);
glVertex2f(5-i,-5+i);
glEnd();
 
glPushMatrix();
glRotatef(angle, 0, 0, 1);
glBegin(GL_POLYGON);//рисуем  полигон
glColor3ub(255,255,255);//цвет
glVertex2f(-4.5+i,-4.5+i);
glVertex2f(-4.5+i,4.5-i);
glVertex2f(4.5-i,4.5-i);
glVertex2f(4.5-i,-4.5+i);
glEnd();
glPopMatrix();
}
 
glutSwapBuffers();
 
}
//установка таймера
void Timer(int)
{
angle+=0.5;
glutTimerFunc(5,Timer,0);//обновлять экран каждые 8мсек
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(1.0, 1.0, 1.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;
}

Прикрепленный файлРазмер
Shadrov_Melnica.rar935.14 кб