Алгоритмы и математические выкладки построения воксельных сеток цилиндрической формы

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

Расчётная сетка, которая состоит из расположенных на листе и скрученных в цилиндр вокселов

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

ИСХОДНЫЕ ДАННЫЕ ДЛЯ ПОСТРОЕНИЯ ВОКСЕЛЬНОЙ СЕТКИ

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

Расположение вокселов. Шаблон

Рисунок 1 – Шаблон расположения вокселов

В таблице 1 приведены геометрические параметры листа с вокселами.

Таблица 1 - Параметры листа с вокселами

Обозначение Описание
w длина листа
h ширина листа
\Delta_h_o_r горизонтальное смещение между двумя вокселами,
расположенными в одной строке
\Delta_v_e_r_t вертикальное смещение между двумя вокселами,
расположенными в одном столбце
r_b радиус основания одного воксела
h_b высота одного воксела

ОГРАНИЧЕНИЯ ПАРАМЕТРОВ ДЛЯ СЕТКИ ЦИЛИНДРИЧЕСКОЙ ФОРМЫ

Отметим естественные ограничения, налагаемые на приведенные параметры

(1)   \begin{equation*} \Delta_h_o_r\ge 2r_b \end{equation*}

    \[ \Delta_v_e_r_t\ge 2r_b\]

    \[ \sqrt{\Delta^2_h_o_r+\Delta^2_v_e_r_t}\ge 4r_b\]

Рассмотрим цилиндр, из которого состоит конечная расчетная сетка с вокселами. Не нарушая общности, считаем, что высота цилиндра совпадает с шириной листа, а радиус цилиндра равен R. Срез, перпендикулярный оси цилиндра, представлен на рисунке 2 (фигура красного цвета).

Схема расположения цилиндра и среза, перпендикулярного оси цилиндра

Рисунок 2 – Геометрические параметры цилиндра

ДВУМЕРНОЕ ПРЕДСТАВЛЕНИЕ РАСЧЕТНОЙ СЕТКИ

Использование расчетной сетки при моделировании физических процессов, например в строительстве, может налагать на вокселы и цилиндр дополнительные физические параметры, такие как растяжение листа, а также возможные деформации вокселов. Для минимизации физических факторов, предполагается оборачивание листа вокруг не цилиндра, а вокруг части спирали (объединение красного и голубого элементов на рисунке 2). При таком подходе, с большой точностью мы можем считать, что лист после обмотки имеет форму Архимедовой спирали. Проекция данной спирали на сечение, перпендикулярное оси цилиндра, в полярных координатах задается формулой:

(2)   \begin{equation*} \rho(\varphi)=R+(\frac{h_b}{2\pi})\varphi \end{equation*}

Далее под цилиндром, если не сказано обратное, мы будем понимать именно фигуру с сечением, как на рисунке 2.

Для разработки алгоритма переноса поверхности объекта на вокселы, необходимо производить преобразование из двумерных координат точки на листе в трехмерные координаты, которые будет иметь точка после оборачивания листа вокруг цилиндра.

ТРЕХМЕРНАЯ МАТЕМАТИЧЕСКАЯ МОДЕЛЬ РАСЧЕТНОЙ СЕТКИ

Выведем формулы преобразования двумерных координат в трехмерные координаты. Пусть точка P на листе задана координатами (x,y), необходимо вычислить соответствующие трехмерные координаты (x_s,y_s,z_s). Предполагая, что ось цилиндра совпадает с осью O_z, а нижнее основание цилиндра находится на плоскости O_x_y. В силу сделанных уточнений, очевидно, имеет место равенство z_s=y.

Для нахождения остальных двух пространственных координат, как следует из формулы (2), необходимо знание угла \varphi_P. Для вычисления данного угла, двумя способами посчитаем расстояние от точки P до оси цилиндра. Рассматривая данную точку на плоскости, находим, что расстояние до оси равно x, рассматривая же P, как точку на Архимедовой спирали, и применяя формулу вычисления длины кривой, заданной в полярных координатах, получаем, что расстояние вдоль кривой до оси равно

(3)   \begin{equation*} \int_{0}^{\varphi_P}\sqrt{(\frac{h_b}{2\pi})^2+(R+\frac{h_b}{2\pi}\varphi)^2}d\varphi \end{equation*}

Вычисляя интеграл в формуле (3), получим уравнение для отыскания полярного угла

    \[ x=\frac{h_b}{4\pi}((\frac {2\pi}{h_b}R+\varphi_P)\sqrt{1+(\frac{2\pi}{h_b}R+\varphi_P)^2}+\ln((\frac{2\pi}{h_b}R+\varphi_P)+\]

(4)   \begin{equation*} +\sqrt{1+(\frac {2\pi}{h_b}R+\varphi_P)^2}))-\frac{h_b}{4\pi}(\frac{2\pi}{h_b}R\sqrt{1+(\frac{2\pi}{h_b}R)^2}+\end{equation*}

    \[ +\ln(\frac{2\pi}{h_b}R+\sqrt{1+(\frac{2\pi}{h_b}R)^2}))\]

Уравнение (4) решается численными методами, например методом Ньютона.

После того как найден угол \varphi_P, координаты x_s и y_s вычисляются по формулам

(5)   \begin{equation*} \ x_s=(R+\frac {h_b}{2\pi}\varphi_P)\cos(\varphi_P), y_s=(R+\frac {h_b}{2\pi}\varphi_P)\sin(\varphi_P) \end{equation*}

ВЫВОДЫ

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>