Программа демонстрирует построение поверхности, заданной параметрически, с удалением невидимых граней по методу плавающего горизонта и освещение по Ламберту.
В программе строится 3D график функции, проецированием точки на экран по формулам центральной проекции, удаляются невидимые грани по алгоритму плавающего горизонта, а также происходит освещение источником света.Используется модель освещения Ламберта.
При нажатию на кнопку "Rotate" график вращается по оси X
Вращение графика функции sin(x)*sin(x)*cos(y) по оси X, с удалением невидимых точек.
<!DOCTYPE html> <html> <body> <canvas id="myCanvas" width="600" height="600" style="border:1px solid #d3d3d3"> Your browser does not support the HTML5 canvas tag.</canvas> <script> var c = document.getElementById("myCanvas"); var ctx = c.getContext("2d"); var p = { x: [], y: [], z: [], } var cnt = { x: [], y: [], } var itog = { x: [], y: [], }
В данном уроке будет предоставлен пример реализации "Жадного алгоритма триангуляции" на Python.
Начнём с установки Tkinter. Вводим в терминале или просто в командной строке:
pip install tkinter
После установки можно приступить к написанию кода. Сперва импортируем всё, что нам понадобится для работы:
from tkinter import * from itertools import combinations from math import sqrt from collections import OrderedDict
В алгоритме заливки используется алгоритм Брезенхема построения линии. Нажимайте левой кнопкой мыши по холсту, чтобы отметить вершины многоугольника. Нажмите колесиком мыши по холсту, чтобы залить многоугольник.
Алгоритм работает для любых простых многоугольников.
<canvas id="graph" width = "500px" height = "400px" style = "border: 1px solid black"></canvas> <script> var canvas = document.getElementById('graph'); var ctx = canvas.getContext('2d'); var Point = function(x, y) { this.x = x; this.y = y; }
Цель: Показать работу алгоритма удаления невидимых граней выпуклого многогранника.
Краткое описание: Куб задан множеством из 6 граней. Вначале находятся нормали к граням, затем рассчитывается, какие из граней будут невидимы при отрисовке.
Для того, чтобы куб появился, нажмите ЛКМ и потяните мышку на canvas'е.
Программа демонстрирует построение шара, освещенного источником света. Используется модель освещения Ламберта.
По нажатию на кнопку "Старт" начинается построение.
Задача: построить триангуляцию Делоне для множества точек.
Описание работы программы:
С помощью нормального распределения генерируется 100 точек, принадлежащих области канваса.
Затем находится треугольник, содержащий все точки этого множества.
После чего каждая точка последовательно добавляется в триангуляцию с необходимыми перестроениями триангуляции.
Данная программа получает на вход кол-во итераций от пользователя и строит фрактал Хопалонг.
Данная программа получает на вход кол-во итераций от пользователя и строит кривую Леви.