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

Вход на сайт

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

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

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

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

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

Рейтинг@Mail.ru Яндекс.Метрика

Java

Скриншот к примеру
Среда программирования: 
IntelliJ IDEA

Пример триангуляции многоугольника. Программа получает координаты x, y по щелчку мыши, получает нужные вершины и производит триангуляцию по часовой или против часовой стрелки, в зависимости от входящих значений.
Используется встроенные класс Polygon для хранения и триангуляции многоугольника, результат выдоится на JPanel.

Скриншот к примеру
Среда программирования: 
NetBeans IDE 8.2

Пример заливки с "жесткостью".
Использование:
В форме FillToleranceExample нажмите на единственную кнопку для генерации тестовой сцены.
В единственном текстовом поле укажите параметр "жесткости" от 0 до 1, затем нажимайте мышью на панели в разных участках сцены. Для очистки сцены повторно нажмите на кнопку.

Скриншот к примеру
Среда программирования: 
Любая

Задача: Построить окружность, используя алгоритм Брезенхема.
Алгоритм: Строим четверть окружности, и достраиваем остальные симметрично. На каждой итерации цикла выбираем одну из трёх возможных точек(сравниваем расстояние от центра до выбранной точки с радиусом окружности).

Скриншот к примеру
Среда программирования: 
IntelliJ IDEA

Горизонтальные и вертикальные линии не нуждаются в сглаживании(рисуем их отдельно). Для остальных линий выбираем основную ось и идём вдоль неё, подбирая координаты по оставшейся(неосновной) оси. На каждой итерации устанавливаем две точки - рассчитываем величину ошибки и видим, как сильно ушли пиксели от идеальной линии по неосновной оси, на основе этих данных распределяем интенсивность между выбранными точками.

Скриншот к примеру
Среда программирования: 
IntelliJ IDEA
Статья по теме: 

Задача: Определить, принадлежит ли точка выпуклому многоугольнику.
Алгоритм: Выберем произвольную точку ( кликом мышки ).
Используя векторное произведение, проверим по очереди в порядке обхода сторон по часовой стрелке, лежит ли точка слева от очередного вектора - стороны многоугольника
( откладываем вектора: от i-й вершины к i-1-й вершине, и от i-й вершины к выбранной точке).
Если векторное произведение неотрицательно, значит точка лежит слева от стороны многоугольника, либо на стороне. Если это выполняется для каждой из сторон, то точка лежит внутри многоугольника.

Скриншот к примеру
Среда программирования: 
IntelliJ IDEA

Задача: Построить окружность, используя алгоритм Брезенхема.
Алгоритм: Строим четверть окружности, и достраиваем остальные симметрично. На каждой итерации цикла выбираем одну из трёх возможных точек(сравниваем расстояние от центра до выбранной точки с радиусом окружности).

Скриншот к примеру
Среда программирования: 
IntelliJ IDEA
Статья по теме: 

Задача: Нарисовать кривую Леви.
Алгоритм: Метод drawLevy принимает координаты начального отрезка и количество итераций n. Затем высчитываются точки излома и для них вызывается drawLevy с декрементом n и т.д.(пока n != 0). Если n == 0, то рисуется линия по текущими координатам (x1, y1, x2, y2).

Скриншот к примеру
Среда программирования: 
IntelliJ IDEA

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