Моделирование марширующих площадей в C++ ImGui

Марширующие квадраты — вдохновляющий алгоритм, применимый во многих областях (в основном, в компьютерной графике), который используется для построения контуров в двумерном скалярном поле.

В этой статье объясняется, как создаются контуры, и предоставляется возможность изучить симуляцию C++, которой я делюсь на моем GitHub.

Принцип создания совпадающих квадратов прост, но дает чудесный опыт человеческому восприятию. Имея двумерную сетку точек (вершин), механизм случайных чисел использует значения 0 или 1 для каждой вершины. Здесь я хотел бы отметить, что случайное назначение может быть выполнено на основе других случайных двигателей или даже шума (шум Перлина, который я обсуждал здесь).

Имея назначение вершин, мы должны выполнить анализ квадратов (четыре вершины) и классифицировать квадрат в соответствии со значениями каждой вершины (0 или 1) к одному из 16 классов.
Вообще говоря, мы делим квадратные вершины на две группы: нули и единицы.
С точки зрения алгоритма мы просто присваиваем определенный шаблон классу, а затем рисуем линии в соответствии с реализацией алгоритма (спецификацию, которую вы можете увидеть на странице Википедии).

Если вы применили все свои описания сетки к методу, вы можете ожидать следующих результатов.

Вот симуляция в ImGui C++,

Реализацию решения я развернул на C++ с визуализацией в ImGui. Знакомство с C++ ImGui и информацию о компиляции и сборке программ вы найдете в одной из моих предыдущих статей.