Визуализация B-поверхности
Работа в системе Analysis Situs начинается с выбора интересующей грани. По умолчанию мы видим изопараметрические линии несущей поверхности, взятые с некоторым шагом вдоль ее криволинейных координат. Подобные картинки часто встречаются в литературе, посвященной геометрическому моделированию. Польза такой визуализации состоит в возможности видеть скорость параметризации поверхности: отсутствие сгущений означает, что поверхность параметризована более-менее равномерно.
Отрисовка изолиний с фиксированным шагом — общеприменимый метод визуализации параметрических поверхностей. Для сплайнов можно пойти дальше. Известно, что параметрическое пространство B-поверхности бьется на узловые интервалы. Узел сплайна — это локальная особенность формы, которую можно визуализировать. Сравните две картинки. Сначала изолинии с равномерным шагом по параметрам U, V:
Теперь изолинии по узловым значениям:
Мы видим, что поверхность, не вызывающая никаких нареканий на первой картинке, выглядит странно на второй. Появляются сгущения. Кроме того, из теории известно, что сплайн имеет некоторый дефект гладкости в своих узлах. Если степень сплайна равна X, а кратность узла равна Y, то непрерывность поперек соответствующей изолинии для данного узла есть разность (X - Y). Порядок гладкости — важная характеристика формы, ведь многие геометрические построения существенно на него опираются. Визуализация узловых изолиний позволяет отразить порядок гладкости, например, цветом. На рисунке выше красный цвет кодирует непрерывность порядка C0, желтый — C1, голубой — C2, а белый цвет означает гладкость порядка C3 и выше (цвета меняются от «горячих» к «холодным»).
Режим затенения дает возможность оценить рельеф поверхности. В этом режиме становятся заметны складки и неровности.
Для аналитической оценки качества формы используется карта кривизн (гауссовых либо средних). Этот режим визуализации повторяет режим затенения с той разницей, что цвет выставляется не однородно, а в соответствии с дифференциальными свойствами геометрии в каждой конкретно взятой точке. Оба режима предполагают создание полигональной подложки несущей поверхности.
Кроме того, аналитическое описание геометрии можно сериализовать в текст. В программе Analysis Situs для выбранной грани достаточно щелкнуть пункт меню «Copy as JSON», чтобы получить ASCII-представление формы.
В формате JSON описание несущей поверхности легко читаемо и относительно легко редактируемо.
Мы используем JSON-представления для юнит-тестов.