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

Вход на сайт

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

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

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

Я код на C++ набрал сам. Строил кривую Безье, но "прилипал" к нулю. То есть я задаю точки далеко от нуля, а он строил из нуля, а потом только обходил предложенные точки. Потом я нашёл Ваш сайт и эту статью. Оказалось, что я забыл возвести t в...
просто я не так понял, здесь мы вращаем точки куба что вращает сам куб. Мне нужно вращать просто 3д объект , данный способ не подходит
Задавайте объект в мировых координатах. Вращайте его относительно мировой системы координат. А при отрисовке преобразуйте в экранные координаты. Посмотрите пример преобразования в экранные координаты.
Это вращение по мировым осям ? Если да то как сделать по осям объекта ?
Добрый вечер! Область прорисовки остается пустой. Чего-то не хватает. Объясните плз, чего? Рамиль.

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

Рейтинг@Mail.ru
Скриншот к примеру
Среда программирования: 
Eclipse
Статья по теме: 

Построить фрактал, описанный в статье.
Функция drawFractal получает в качестве параметров координаты центра круга, затем радиус, затем индекс, определяющий положение его родителя(для самого первого полагаем, что родитель был "снизу"), а также количество итераций. Рисуем круг со входными данными, далее в случае, если итераций не осталось, заканчиваем отрисовку, иначе - находим координаты всех центров потенциальных кругов-потомком, а затем для каждого, кроме того, чье место занято родителем, вызываем эту же самую функцию с соответствующими параметрами.

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

public static int drawFractal(Graphics g, int x0, int y0, int r, int dir,
			int iter) {// (x0, y0) - point, r - circle radius, dir is position
						// of parent circle(0 for right, 1 for bot,
						//  2 for left, 3 for top)
		g.fillOval(x0 - r, y0 - r, 2 * r, 2 * r);
		if (iter == 0) {
			return 0;
		}
		int x[] = new int[4], y[] = new int[4]; //child circles
		int d = 3 * r / 2;
		x[0] = x0 - d;
		y[0] = y0;
		x[1] = x0;
		y[1] = y0 - d;
		x[2] = x0 + d;
		y[2] = y0;
		x[3] = x0;
		y[3] = y0 + d;
 
		for (int i = 0; i < 4; i++) { //draw every child except parent direction
			if (i - dir == 2 || i - dir == -2)
				continue;
			drawFractal(g, x[i], y[i], r / 2, i, iter - 1);
		}
 
		return 0;
 
	}

Прикрепленный файлРазмер
RecCircles.zip5.6 кб