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

Вход на сайт

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

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

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

torrvic, возможно, Вам нужно добавить -lGLU
Извините за тупой вопрос. У меня при сборке Вашего примера выходит ошибка: "undefined reference to gluLookAt". Не могу найти в какой библиотеке находится эта функция. У меня задано: -lGL -lglut ... Искал в /usr/lib таким образом: nm lib*so* | grep...
Здравствуйте. Спасибо за проект. У меня вопрос, по какой причине определение принадлежности точки многоугольнику работает некорректно, если координаты из больших чисел состоят, например: int[] vertex = new int[] {...
Сейчас проверила нашла причину не запускания // Создание контекста воспроизведения OpenGL и привязка его к панели на форме OpenGLControl1:=TOpenGLControl.Create(Self); with OpenGLControl1 do begin Name:='OpenGLControl1'; //вот тут...
Ну..кажется что то пошло не так http://pp.usera...

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

Рейтинг@Mail.ru
Смотрите www.ma-nu.ru совместимость по имени.
Скриншот к примеру
Среда программирования: 
Code::Blocks 16.01
Статья по теме: 

Программа рисует фрактал "Слово Фибоначчи".

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

#include <math.h>
#include <string>
using namespace std;
//ширина и высота
const int winW = 750; 
const int winH = 550;
//глубина
const int depth = 23; 
 
 
void setFractal(int x, int y, int len, int it, sf::VertexArray & target_va) {
 
	string s; // получаем строку Фибоначчи на n итерации
	string s1 = "1";
	string s2 = "0";
	for (int i = 0; i < it - 2; ++i) {
		s = s2 + s1;
		s1 = s2;
		s2 = s;
	}
	if (it == 1) {
		s = "1";
	}
	else {
		s = s2;
	} //теперь s - наша строка
 
	int vx = 0, vy = -1;// начальный вектор (0,-1) то есть вверх
	int x1 = x;
	int y1 = y;
	int x2, y2, temp;
 
	for (int i = 0; i < s.length(); i++) {
		x2 = x1 + len * vx; //проводим сегмент длины а в направлении вектора (vx,vy)
		y2 = y1 + len * vy;
		sf::Vertex tmp_x, tmp_y;
		tmp_x.color = tmp_y.color = sf::Color::Yellow;
		tmp_x.position = sf::Vector2f(x1, y1);
		tmp_y.position = sf::Vector2f(x2, y2);
		target_va.append(tmp_x);
		target_va.append(tmp_y);
		x1 = x2;
		y1 = y2;
		if (s[i] == '0') {
			if (i % 2 == 0) {// поворот налево
				temp = vx;
				vx = -1 * vy;
				vy = temp;
			}
			else {// поворот направо 
				temp = vx;
				vx = vy;
				vy = -1 * temp;
			}
		}
	}
}
 
 
 
int main() {
	sf::RenderWindow window(sf::VideoMode(winW, winH), "FRACTAL"); //устанавливаем окно
 
	sf::VertexArray va; //массив вершин
	va.setPrimitiveType(sf::Lines); //рисуем типом линия
 
	setFractal(50, winH - 100, 1, depth, 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;
}

Прикрепленный файлРазмер
FIBO_WORD.zip774.42 кб