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

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

Построения
на плоскости (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 Яндекс.Метрика
Скриншот к примеру
Среда программирования: 
Code::Blocks 16.01

Программа рисует фрактал Жулиа.

Код программы: 

#include <SFML\Graphics.hpp>
#include <SFML\Window.hpp>
#include <iostream>
#include <math.h>
 
using namespace std;
//Ширина и высота окна
const int winW = 750;
const int winH = 550;
 
 
//Функция прорисовки фрактала
 
void setFractal(sf::VertexArray & target_va) { 
	float cRe = -0.70176 , cIm = -0.3842;
	// вещественная и мнимая части.
	float newRe, newIm, oldRe, oldIm;
 
	//Определяем число итераций и время работы. 
	int maxIt = 300;
 
 
	for (int x = 0; x < winW; ++x) {
		for (int y = 0; y < winH; ++y){
			//вычисляем реальную и мнимую часть
			//масштабирования и значения позиции
			newRe = 1.5 * (x - winW / 2) / (0.5 * winW);
			newIm = (y - winH / 2) / (0.5 * winH);
 
 
 
			//начинается процесс итерации
			int curr_it;
			for (curr_it = 0; curr_it < maxIt; ++curr_it) {
				//Запоминаем значение предыдущей итерации
				oldRe = newRe;
				oldIm = newIm;
 
				// в текущей итерации вычисляются действительная и мнимая части
				newRe = oldRe * oldRe - oldIm * oldIm + cRe;
				newIm = 2 * oldRe * oldIm + cIm;
 
				// условие прерывания
				if (newRe * newRe + newIm * newIm > 4)
					break;
			}
 
			sf::Vertex tmp;
			tmp.color = sf::Color((curr_it - 1 * 9) % 60, (curr_it - 1 * 9) % 60, (curr_it - 1 * 9) % 60, (curr_it - 1 * 9) % 150);
 
			tmp.position = sf::Vector2f(x, y);
 
			target_va.append(tmp);
		}
	}
}
 
 
 
int main() {
	sf::RenderWindow window(sf::VideoMode(winW, winH), "FRACTAL"); //окно программы
 
	sf::VertexArray va; //массив вершин
	va.setPrimitiveType(sf::Points); //рисуем точками
 
	setFractal(va); //функия вызова фрактала
 
	while (1) {
		sf::Event event;
		while (window.pollEvent(event)) {
			// События закрытия окну по клику на крестик и по нажатию Esc
			if (event.type == sf::Event::Closed || event.type == sf::Event::KeyPressed && event.key.code == sf::Keyboard::Escape)
				return 0;
		}
		window.clear(sf::Color::Black);
 
		window.draw(va);
 
		window.display();
	}
	return 0;
}

Прикрепленный файлРазмер
FractalJulia.zip773 кб