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

Вход на сайт

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

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