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

Вход на сайт

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

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

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

Здравствуйте, Ильгиз. Математика - царица наук (Карл Гаусс). Изучение математики начинается с детского сада, когда нас учат считать и выполнять простые арифметические операции. Любой, даже самый простейший алгоритм будет связан с арифметическими...
Я хотел узнать математика это обязательно в программирование. Пять лет назад просто из любопытства я увлекся HTML потом изучил CSS и JvaScript потом изучил PHP и Java. Как то не задумывался и начал смотреть форумы и узнал что без математики не...
Все верно, но так же необходимо зайти в: Компоновщик -> Ввод -> Дополнительные зависимости Здесь необходимо нажать изменить и в Дополнительные зависимости прописать это: SDL2.lib SDL2main.lib SDL2test.lib Без этого не заработает. (MVS 2015)
Спасибо за реализацию, она действительно быстрая. Но не все линии отрисовывает в нужную сторону... Необходимо добавить проверку для случая X-линии if(y1 "<" y0) grad=-grad; и аналогично для Y-линии if(x1 "<" x0) grad=-grad; P.S. На...
Отличные уроки(учу GL по ним), только в renderScene нужно добавить очистку буфера цвета и буфера глубины. При изменении размеров треугольники размножаются)

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

Яндекс.Метрика Рейтинг@Mail.ru
Скриншот к примеру
Среда программирования: 
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.zip10.59 кб