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

Вход на сайт

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

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

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

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

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

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

Построить описанный фрактал. Срабатывает при запуске.

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

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.Toolkit;
 
import javax.swing.JPanel;
 
public class MyPanel extends JPanel {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	static int iter = 6;//количество итераций
 
	public static int drawTSQ(Graphics g, Point A, int size, int iter) {
		//параметры А - координата левого верхнего угла квадрата
		//size - длина стороны
		//iter - кол-во итераций
		//g - экземпляр библиотечного класса, ответственного за отрисовку
		if(iter==1){//если итерация одна, просто рисуем заполненный прямоугольник
			g.fillRect(A.x, A.y, size, size);
			return 0;
		}
		int d=size/4; //вспомогательная переменная, четверть длины исходного квадрата
		Point M[]=new Point[4];//координаты левых верхних углов порожденных квадратов
		for(int i=0;i<4;i++){
			M[i]=new Point();
		}
		M[0].x=A.x-d;//левый верхний квадрат
		M[0].y=A.y-d;
		M[1].x=A.x-d;//левый нижний
		M[1].y=A.y+size-d;
		M[2].x=A.x+size-d;//правый верхний
		M[2].y=A.y-d;
		M[3].x=A.x+size-d;//правый нижний
		M[3].y=A.y+size-d;
 
 
		for(int i=0;i<4;i++){
			drawTSQ(g, M[i], size/2, iter-1);//вызываем рекурсивно для каждого квадрата
		}
		g.fillRect(A.x, A.y, size, size);//отрисовываем исходный квадрат
		return 0;
 
	}
 
	@Override
	protected void paintComponent(Graphics g) {
		// TODO Auto-generated method stub
		super.paintComponent(g);
		this.setBackground(Color.YELLOW);
		g.setColor(Color.BLACK);
		Toolkit kit = Toolkit.getDefaultToolkit();
		Dimension size = kit.getScreenSize();
		int h=size.height;
		int w=size.width;
		Point A=new Point(w/2-h/4,h/4);//координаты левого верхнего угла исходного квадрата
 
 
 
		drawTSQ(g, A, h/2-h/10, iter);//вызываем отрисовку фрактала
		repaint();
 
	}
 
}

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