Пробовал реализовать данный метод, но не выходят нормальные числа. Кто поможет, буду очень благодарен. Ибо в интернете, никакой теории лучше, чем ниже, я не нашел.
Немного теории.
Метод триангуляции, весьма похож на алгоритм подсчёта кубов и тоже основан непосредственно на определении фрактальной размерности, основанном на подсчёте коробок. Метод работает следующим образом: сетка с размером ячейки в одну единицу измерения l помещается на поверхность. Это определяет положения вершин набора треугольников. Когда, например, l = X/4, поверхность покрыта 32 треугольниками различной площади наклонёнными под разными углами по отношению к плоскости xy. Площади всех треугольников рассчитываются и суммируются чтобы получить приближенную площадь поверхности S(l), соответствующую l. размер сетки затем уменьшается последовательно в два раза на каждом шаге, как и раньше, процесс продолжается до тех пор. пока l не станет равным расстоянию между двумя соседними точками. Наклон графика S(l) от log(1/l) при этом соответствует Df − 2.
Как делаю я.
Есть матрица - карта высот z[x][y]. Как и сказано выше - разбиваю поверхность на 1, 8, 32, 512, ... треугольников. Считаю соответствующие площади S1, S8, S32, S512, .... Затем строю строю точки S(l) от log(1/l) на графике и аппроксимирую их прямой. Нахожу тангенс угла наклона этой прямой, и нахожу Df.
Df (фрактальная размерность поверхности) должна изменяться в пределах 2 <= Df <=3. Но у меня нередко довольно сильно значение уходит за эти границы.
Как бы вы реализовали этот метод? В чем у меня может быть ошибка?
Литература:
Источник теорииОдна научная статья по этой теме