PIZiadas GRÁFICAS

PIZiadas GRÁFICAS

Мой мир дюйма.

Рекурсивные фракталы: Треугольник Серпинского [JAVA]

triangulo_sierpinskiМы видели, первая программа под названием “DrawWorld” мы ввели программирования JAVA ориентированной графики. Давайте изменим это основная программа для генерации основного рекурсивных фрактальной: El Треугольник Серпинского.

(Посмотреть и генерации рекурсивного фрактальной)

Это фрактал, который построен рекурсивно от треугольника, стороны которого делятся на его середине. С помощью этих новых точек, и предыдущих, новые треугольники построены аналогично предыдущему.

Если исходить из треугольника ABC и получить середины его сторон (MNP), Следующий уровень рекурсии будет строить три треугольника ниже: APN, PBM NMC.

Треугольник Серпинского имеет фрактальной размерности Хаусдорфа-Безиковича совпадает с фрактальной размерностью homotecia равным: 1,58496… (W)

Если каждый из этих новых треугольники подразделяются на три, мы будем получать новую фигуру рекурсивно. У нас будет новый уровень рекурсии мы можем контролировать с помощью переменной (nivel_de_recursividad) нашей программы.

Мы определили функцию “paintRecursivo” (Я позвонил из метода “краска”) и в этот момент мы треугольника базы, и рекурсия. Функция вычисляет вершины треугольника, рисует фигуру и называет себя три раза, один для каждого из треугольников.

В каждом вызове функция уменьшает значение рекурсии, так что, когда она равна нулю отделки проведение рекурсии.

импортировать java.applet.Applet;
импортировать java.awt.Graphics;
/**
* @ Автор Jose Juan Алиаги
*/
общественность класс MainApp расширяется Апплета {
 удвоится xp1 = 300;
 удвоится yp1 = 300;
 удвоится XP2 = 10;
 удвоится yp2 = 300;
 удвоится sin60 = Math.sin(3.14/3.);
 десятичного nivel_de_recursividad = 6;

 общественность MainApp() { }

 общественность статический аннулированию основной(Строка[] аргументы) { }

 общественного недействительными краска(Графика г){
   paintRecursivo(грамм,nivel_de_recursividad,xp1, yp1, XP2, yp2);
 }

 частных недействительным paintRecursivo(Графика г, десятичного я, удвоится XP12, удвоится yp12, удвоится xp22, удвоится yp22 ) {

 удвоится DX =(xp22-XP12)/2.;
  удвоится два =(yp22-yp12)/2.;
  удвоится XP32 XP12   DX = 2 * значение * sin60;
  удвоится yp32=yp12 dy 2*dx*sin60;

  удвоится dx1 =(xp22   XP12)/2.;
  удвоится dy1 =(yp22   yp12)/2.;
  удвоится dx2 =(XP32   xp22)/2.;
  удвоится dy2 =(yp32   yp22)/2.;
  удвоится dx3 =(XP12   XP32)/2.;
  удвоится Dy 3 =(yp12   yp32)/2.;

  если(я<= 0){
   g.drawLine((десятичного)XP12,(десятичного)yp12,(десятичного)xp22,(десятичного)yp22);
   g.drawLine((десятичного)xp22,(десятичного)yp22,(десятичного)XP32,(десятичного)yp32);
   g.drawLine((десятичного)XP32,(десятичного)yp32,(десятичного)XP12,(десятичного)yp12);
  }
  еще{
   paintRecursivo(грамм,I-1, XP12, yp12, dx1, dy1);
   paintRecursivo(грамм,I-1, dx1, dy1, xp22, yp22);
   paintRecursivo(грамм,I-1, dx3, dy3, dx2, dy2);
  }

 }
}
JAVA

Курс JAVA