Среда программирования:
IntelliJ IDEA
Статья по теме:
Задача: Нарисовать кривую Леви.
Алгоритм: Метод drawLevy принимает координаты начального отрезка и количество итераций n. Затем высчитываются точки излома и для них вызывается drawLevy с декрементом n и т.д.(пока n != 0). Если n == 0, то рисуется линия по текущими координатам (x1, y1, x2, y2).
Код программы:
package com.company.tests; import javax.swing.*; import java.awt.*; public class LevyView extends JPanel { public void paintComponent(Graphics g) { super.paintComponents(g); g.setColor(Color.BLUE); drawLevy(150, 350, 450, 350, 20, g);//20-количество итераций } private void drawLevy(int x1, int y1, int x2, int y2, int n, Graphics g ) {//Основная рекурсивная функция if (n == 0) g.drawLine(x1, y1, x2, y2); else { int xx = (x1 + x2) / 2 + (y2 - y1) / 2;//Находим точки для дальнейшего разбиения и поворота(точки излома) int yy = (y1 + y2) / 2 - (x2 - x1) / 2; drawLevy(x1, y1, xx, yy, n - 1, g); drawLevy(xx, yy, x2, y2, n - 1, g); } } }
Прикрепленный файл | Размер |
---|---|
Levy.zip | 10.59 кб |