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

Вход на сайт

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

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

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

Я код на C++ набрал сам. Строил кривую Безье, но "прилипал" к нулю. То есть я задаю точки далеко от нуля, а он строил из нуля, а потом только обходил предложенные точки. Потом я нашёл Ваш сайт и эту статью. Оказалось, что я забыл возвести t в...
просто я не так понял, здесь мы вращаем точки куба что вращает сам куб. Мне нужно вращать просто 3д объект , данный способ не подходит
Задавайте объект в мировых координатах. Вращайте его относительно мировой системы координат. А при отрисовке преобразуйте в экранные координаты. Посмотрите пример преобразования в экранные координаты.
Это вращение по мировым осям ? Если да то как сделать по осям объекта ?
Добрый вечер! Область прорисовки остается пустой. Чего-то не хватает. Объясните плз, чего? Рамиль.

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

Рейтинг@Mail.ru
Скриншот к примеру
Среда программирования: 
IntelliJ IDEA

Задача - построить фрактал Дракон Хартера-Хейтуэя.
Алгоритм - Берём произвольный отрезок. Делим его пополам и строим из получившихся отрезков прямой угол. Затем многократно повторяем итерацию(на это в влияет аргумент n функции drawDragon).

Код программы: 

import javax.swing.*;
import java.awt.*;
 
public class DragonView extends JPanel
{
 
    public void paintComponent(Graphics g)
    {
        super.paintComponents(g);
        g.setColor(Color.RED);
        drawDragon(180, 200, 400, 450, 24, g);//Задаём прямую и указываем количество итераций
        repaint();
    }
 
    private void drawDragon(int x1, int y1, int x2, int y2, int n, Graphics g)//Основная рекурсивная функция 
    {
        int xn, yn;
        if(n > 0) //Пока n > 0 - продолжаем поворачивать прямые на 90 градусов и  уменьшать их размеры
        {
            xn = (x1 + x2) / 2 + (y2 - y1) / 2;
            yn = (y1 + y2) / 2 - (x2 - x1) / 2 ;
            drawDragon(x2, y2, xn, yn, n - 1, g);
            drawDragon(x1, y1, xn, yn, n - 1, g);
        }
        if(n == 0)//Приступаем к рисованию прямых
            g.drawLine(x1, y1, x2, y2);
    }
 
}

Прикрепленный файлРазмер
Dragons.zip9.81 кб