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

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

Построения
на плоскости (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 C++ 2010 Express

#include "stdafx.h"
#include <glut.h>
#include <stdio.h>
 void Initialize(){
//Выбрать фоновый (очищающий) цвет
glClearColor(0.0,0.0,0.0,0.0); 
//Установить проекцию
glMatrixMode(GL_PROJECTION);
//обнуление трансформации (обнуляем матрицу)
glLoadIdentity();
glOrtho(0.0,100.0,0.0,100.0,-100.0,100.0);
}
double i=0, j=0;
double k=15;//переменная, определяющая "высоту" конкретного пламени
int flag=0;//переменная, которая определяет увеличение/уменьшение полосы
double len=0;//переменная, которая определяет на сколько изменить длину полосы
void Draw(){//основная функция
	glClear (GL_COLOR_BUFFER_BIT);
	for (i=0; i<=100; i+=0.8){//рисуем пламя в виде полос
	glBegin(GL_POLYGON); //рисуем полосу в виде прямоугольника, задавая свой цвет каждой вершине
		glColor3f(1.0,0.5,0.0);
		glVertex3f(i,5+j,0.0); 
		glColor3f(1.0,0.0,0.0);
		glVertex3f(i,35+len+j,0.0);
		glColor3f(1.0,0.0,0.0);
		glVertex3f(i+1,35+len+j*2,0.0);
		glColor3f(1.0,1.0,0.0);
		glVertex3f(i+1,5+j/5,0.0);
	glEnd();
	//меняем длину полосы в зависимости от значения j, чтобы получить пламя
	if (j<k && flag==0) j+=1;
	if (j>=k) flag=1;
	if (flag==1 && j>0) j-=1;
	if (j<=0){ flag=0; j=0; k+=5;}
	if (k>=30) k=15;//меняем значение, чтобы изменить длину пламени
	}
	glutSwapBuffers(); // Отрисовка из буффера
	glFlush();
}
int A=0;
 void Timer(int value){ // ф-ия таймера
	++A;
	glutDisplayFunc(Draw);// вызываем ф-ию Draw
	//перемещаем полосы, меняя их длины с помощью len
	len=0;
	if (flag==0) while (len<=j) len+=0.2;//увеличиваем значение у при новом вызове таймера
	glutPostRedisplay(); // ф-ия перерисовки окна
	glutTimerFunc(200, Timer, 1); // снова вызываем ф-ию таймера через 200 мили секунд
}
int main(int argc, char **argv) {  // войти в главный цикл
	// инициализация GLUT и создание окна
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
	glutInitWindowPosition(200,100); //Позиция окна
	glutInitWindowSize(500,500); // размер окна
	glutCreateWindow("Языки пламени"); // имя окна
	// очистка буфера цвета и глубины (очищаем экран)
	glClear (GL_COLOR_BUFFER_BIT); 
	Initialize();	
	// регистрация обратных вызовов
	glutDisplayFunc(Draw); //вызов ф-ии Draw
	glutTimerFunc(5000, Timer, 1); // вызов ф-ии таймера  
	glMatrixMode(GL_MODELVIEW); // Выбор видовой матрицы
	glutMainLoop(); //программы GLUT входят в цикл обработки сообщений функцией glutMainLoop()
	return 1;
}

Прикрепленный файлРазмер
Kursaitova Asie Tongues of flame.zip1.94 Мб