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

Вход на сайт

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

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

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

Спасибо за реализацию, она действительно быстрая. Но не все линии отрисовывает в нужную сторону... Необходимо добавить проверку для случая X-линии if(y1 "<" y0) grad=-grad; и аналогично для Y-линии if(x1 "<" x0) grad=-grad; P.S. На...
Отличные уроки(учу GL по ним), только в renderScene нужно добавить очистку буфера цвета и буфера глубины. При изменении размеров треугольники размножаются)
как исправить это , сделал все по инструкции
Timer1 - выдает ошибку. Использовал IdleTimer1, работает! unit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls, OpenGLContext, GL, GLU; type { TForm1 } TForm1 =...
в коде присутствуют ошибки! // Считываем координаты procedure TForm1.getCoords(Sender: TObject); var j1:longint; begin n:= StrToInt(Edit2.Text); //число точек s1:=Edit1.Text; s2:=''; i := 1; j:=1; k:=0...

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

Яндекс.Метрика Рейтинг@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 кб