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

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

Построения
на плоскости (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 <glut.h>
#include <math.h>
#include <stdlib.h>
#include <iostream>
 
using namespace std;
 
float aut1, aut2, aut3,aut4,aut5,aut6,aut7;//блок
float tua1,tua2,tua3,tua4,tua5,tua6,tua7;//переменная возвращающая белый цвет
float color1 = 255;//белый цвет по умолчанию
float color2 = 255;
float color3 = 255;
float color4 = 255;
float color5 = 255;
float color6 = 255;
float color7 = 255;
float x, y;//координаты
 
//сохранение пропорций
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);// очистка буфера
 
			//1 полигон
			glBegin(GL_POLYGON);//рисуем полигон
			glColor3ub(color1,color1,color1);//цвет 105
			glVertex2f(-0.5, 0.5);//координаты
			glVertex2f(-1.0, 1.0);
			glVertex2f(-1.0, 1.5);
			glVertex2f(-0.5, 2.0);
			glVertex2f(-0.0, 1.5);
			glVertex2f(-0.0, 1.0);
			glEnd();//завершение Begin
			//2 полигон
			glBegin(GL_POLYGON);//рисуем  полигон
			glColor3ub(color2,color2,color2);//цвет
			glVertex2f(-0.5+1.05, 0.5);
			glVertex2f(-1.0+1.05, 1.0);
			glVertex2f(-1.0+1.05, 1.5);
			glVertex2f(-0.5+1.05, 2.0);
			glVertex2f(-0.0+1.05, 1.5);
			glVertex2f(-0.0+1.05, 1.0);
			glEnd();
			//3 полигон
			glBegin(GL_POLYGON);//рисуем  полигон
			glColor3ub(color3,color3,color3);//цвет
			glVertex2f(-0.5+1.552, 0.5-1.05);
			glVertex2f(-1.0+1.552, 1.0-1.05);
			glVertex2f(-1.0+1.552, 1.5-1.05);
			glVertex2f(-0.5+1.552, 2.0-1.05);
			glVertex2f(-0.0+1.552, 1.5-1.05);
			glVertex2f(-0.0+1.552, 1.0-1.05);
			glEnd();
			//4 полигон
			glBegin(GL_POLYGON);//рисуем  полигон
			glColor3ub(color4,color4,color4);//цвет
			glVertex2f(-0.5+1.05, 0.5-2.1);
			glVertex2f(-1.0+1.05, 1.0-2.1);
			glVertex2f(-1.0+1.05, 1.5-2.1);
			glVertex2f(-0.5+1.05, 2.0-2.1);
			glVertex2f(-0.0+1.05, 1.5-2.1);
			glVertex2f(-0.0+1.05, 1.0-2.1);
			glEnd();
			//5 полигон
			glBegin(GL_POLYGON);//рисуем  полигон
			glColor3ub(color5,color5,color5);//цвет
			glVertex2f(-0.5, 0.5-2.1);
			glVertex2f(-1.0, 1.0-2.1);
			glVertex2f(-1.0, 1.5-2.1);
			glVertex2f(-0.5, 2.0-2.1);
			glVertex2f(-0.0, 1.5-2.1);
			glVertex2f(-0.0, 1.0-2.1);
			glEnd();	
			//6 полигон
			glBegin(GL_POLYGON);//рисуем  полигон
			glColor3ub(color6,color6,color6);//цвет
			glVertex2f(-0.5-0.52, 0.5-1.05);
			glVertex2f(-1.0-0.52, 1.0-1.05);
			glVertex2f(-1.0-0.52, 1.5-1.05);
			glVertex2f(-0.5-0.52, 2.0-1.05);
			glVertex2f(-0.0-0.52, 1.5-1.05);
			glVertex2f(-0.0-0.52, 1.0-1.05);
			glEnd();
			//7 полигон
 
			glBegin(GL_POLYGON);//рисуем  полигон
			glColor3ub(color7,color7,color7);//цвет
			glVertex2f(-0.5+0.52, 0.5-1.05);
			glVertex2f(-1.0+0.52, 1.0-1.05);
			glVertex2f(-1.0+0.52, 1.5-1.05);
			glVertex2f(-0.5+0.52, 2.0-1.05);
			glVertex2f(-0.0+0.52, 1.5-1.05);
			glVertex2f(-0.0+0.52, 1.0-1.05);
			glEnd();
			glutSwapBuffers();
 
}
//установка таймера
void Timer(int)
{
 
	color1 = color1 - 5 + aut1 + tua1;//становление черным первый полигон
 
	color2 = color2 + tua2;//становление белым второй полигон
	color3 = color3 + tua3;
	color4 = color4 + tua4;
	color5 = color5 + tua5;
	color6 = color6 + tua6;
	color7 = color7 + tua7;
 
	if (color1 < 150)//когда первый полигон стал серым
	{
		color2 = color2 - 5 + aut2 + tua2;//становление черным второго полигона
		if (color1 < 80)	{		aut1 = 5;	}//когда первый полигон стал черным остановить изменение цвета
	}
 
	if (color2 < 150)
	{
		color3 = color3 - 5 + aut3;
		if (color2 < 80)	{		aut2 = 5;	}
	}
 
	if (color3 < 150)
	{
		color4 = color4 - 5 + aut4;
		if (color3 < 80)	{	aut3 = 5;	}
	}
 
	if (color4 < 150)
	{
		color5 = color5 - 5 + aut5;
		if (color4 < 80)		{	aut4 = 5;	}
	}
 
	if (color5 < 150)
	{
		color6 = color6 - 5 + aut6;
		if (color5 < 80)	{	aut5 = 5;	}
	}
 
	if (color6 < 150)
	{
		color7 = color7 - 5 + aut7;
		if (color6 < 80)	{	aut6 = 5;	}
	}
 
 
	if (color7 < 80)//когда последний полигон стал черным
		{
		aut7 = 5;//блок
 
		tua1 = 5;//исчезновение первого
		if (color1 > 150)//когда на половину исчез
			{
				tua2 = 5;//исчезновение второго
				if (color1 > 250)//когда исчез
				{
					tua1 = 0;//блок
				}
			}
 
		if (color2 > 150)
			{
				tua3 = 5;
				if (color2 > 250)	{	tua2 = 0;	}
			}
 
		if (color3 > 150)
			{
				tua4 = 5;
				if (color3 > 250)	{	tua3 = 0;	}
			}
 
		if (color4 > 150)
			{
				tua5 = 5;
				if (color4 > 250)	{	tua4 = 0;	}
			}
 
		if (color5 > 150)
			{
				tua6 = 5;
				if (color5 > 250)	{	tua5 = 0;	}
			}
 
		if (color6 > 250)//когда предпоследний полигон стал белым обнуляю параметры
			{
			tua6 = 0;	aut1 = 0;	aut2 = 0;	aut3 = 0;   aut4 = 0;  aut5 = 0;	    aut6 = 0;	    aut7 = 0;
		    tua1 = 0; tua2 = 0;	 tua3 = 0;	 tua4 = 0; tua5 = 0;	 tua6 = 0;	 tua7 = 0;
		    color1 = 255; color2 = 255; color3 = 255; color4 = 255;	 color5 = 255; color6 = 255; color7 = 255;
			}
 
 
 
		}
 
	glutTimerFunc(8,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("OverWatch");//название окна
	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;
}

Прикрепленный файлРазмер
BrunsOverWatch.rar943.43 кб