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

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

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

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

У меня проблема вот с этим: gl.Clear(OpenGL.GL_COLOR_BUFFER_BIT | OpenGL.GL_DEPTH_BUFFER_BIT);. Вылезает ошибка: CS1061 "object" не содержит определения "GL_COLOR_BUFFER_BIT", и не удалось найти доступный метод расширения "GL_COLOR_BUFFER_BIT",...
Большое спасибо. Единственный код который прошел без каких либо ошибок. Ура!!!
Скажите пожалуйста, подскажите алгоритм по которому по заданным точкам можно определить тип многогранника, скажем это куб или прямоугольный параллелепипед. Нашел теорию по этим фигурам: https://www.mat... https://www.mat... Акцентировать внимание...
Всем у кого не работает. файл wizard.script Ещё одно упоминание Glut32 в строке "if (!VerifyLibFile(dir_nomacro_lib, _T("glut32"), _T("GLUT's"))) return false;" меняем на "if (!VerifyLibFile(dir_nomacro_lib, _T("freeglut"), _T("GLUT's"))) return...
Не получается, емаё

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

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

Windows API

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

Задача - построить перспективную проекцию усеченной пирамиды с четырехугольным основанием.

Создадим форму с кнопкой, при нажатии на которую стираются предыдущие результаты построения (если таковые имеются) и заново рисуется уже повернутая усеченная пирамида.

Используемые функции и процедуры:
FormCreate() - определение координат усеченной пирамиды;
Button1Click() - очищает экран, вращает и рисует заново усеченную пирамиду.

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

Залить гранично-определенную область используя 4-связный алгоритм

Fill4(col, newcol : TColor; x, y : Integer) - рекурсивная ф-ция для заливки
col - цвет границы области
newcol - цвет заливки
x,y - координаты точки внутри области(заливочный центр)

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

Задача - определить, находится точка внутри многоугольника, снаружи или на границе, используя метод трассировки лучом. Создадим форму с двумя полями для ввода координат проверяемой точки и кнопкой. При нажатии на кнопку, поле для рисования заливается цветом clDefault для того, чтобы стереть предыдущие результаты построения(если таковые имеются), рисуется точка и выводится результат при помощи процедуры ShowMessage.

Используемые функции и процедуры:
Init() - Определение точек многоугольника
classify(),edgeType() - классифицируют точку

Скриншот к примеру
Среда программирования: 
Lazarus 1.0.14 win 64

Программа, осуществляющая операции масштабирования, поворота и смещения произвольной фигуры и отрисовку ее в экранной области.

В Lazarus`е создаем форму, на которую добавляем следующие объекты: область для рисования, текстовые поля, в которые будут вводиться коэффициент масштабирования, угол поворота и координаты смещения данной фигуры, и кнопки, по нажатию которых будут соответственно выполняться требуемые операции.

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

По заданному количеству точек, задаваемых координатами x, y, необходимо построить кривую при помощи метода сглаживания кривой типа β-сплайна.
Создадим форму с двумя полями для ввода и кнопкой. В первое поле вводится количество точек, во второе - координаты точек. Отрицательные значения не поддерживаются. При нажатии на кнопку, поле для рисования заливается цветом clDefault для того, чтобы стереть предыдущие результаты построения(если таковые имеются) и затем строится кривая.
Используемые функции:

Скриншот к примеру
Среда программирования: 
Borland Delphi 7.0

Для построения классического фракатал Дракон Хартера возьмем отрезок, на втором шаге повернем его на 90 вокруг одной из вершин и добавим новый полученный отрезок к исходному. Получим уголок из двух отрезков. Повторим описанную процедуру. Повернем уголок на 90о вокруг вершины и добавим полученную ломаную к исходной.

Повторяя названные действия и уменьшая ломаные, будем получать изображение, напоминающие фигуру дракона.

Для построения изображения нажмите кнопку "Button1"

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

Определить принадлежит ли точка выпуклому многогольнику, в данном случае - пятиугольнику. Алгоритм основан на проверке положения точки относительно каждой из сторон пятиугольника.

Скриншот к примеру
Среда программирования: 
Embarcadero Delphi XE ver. 15

В программе используется алгоритм удаления невидимых граней - алгоритм z-буфера. Рисуем два тела, одно тело частично закрывает другое. В конкретном примере это куб позади куба.
Для построения сцены необходимо щелкнуть на форме левой кнопкой мыши. Невидимые грани куба перекрываются видимыми, в результате получаем визуально объемную картинку.

Скриншот к примеру
Среда программирования: 
Code::Blocks 10.05

Одним из важнейших алгоритмов растеризации является алгоритм растеризации треугольника (заполнения треугольника), т.к. в большинстве моделей построения трехмерных объектов последние состоят именно из треугольников. В некоторых статьях этот алгоритм называется алгоритм рисования треугольника. Схематично алгоритм можно описать следующим образом:

Скриншот к примеру
Среда программирования: 
Code::Blocks 10.05
Статья по теме: 

Алгоритм DDA-линии растеризует отрезок прямой между двумя заданными точками, используя вычисления с вещественными числами. Аббревиатура DDA в названии этого алгоритма машинной графики происходит от англ. Digital Differential Analyzer (цифровой дифференциальный анализатор) — вычислительное устройство, применявшееся ранее для генерации векторов. Несмотря на то, что сейчас этот алгоритм практически не применяется, он позволяет понять сложности, которые встречаются при растеризации отрезка и способы их решения.