forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Алгоритмика (http://forum.boolean.name/forumdisplay.php?f=21)
-   -   Пространство треугольника (http://forum.boolean.name/showthread.php?t=16409)

pax 28.02.2012 17:03

Пространство треугольника
 
Стоит следующая задача:

Есть треугольник (задан вершинами), в каждой вершине треугольника есть вес. Необходимо заполнить пространство треугольника точками так чтобы плотность точек была больше там, где больше вес вершины. Число точек, которыми надо заполнить треугольник задано.

Плюс желательно чтобы плотность точек была более менее равномерная.

Есть у кого идеи на этот счет?

Платон Александрович 28.02.2012 18:35

Ответ: Пространство треугольника
 
Цитата:

Сообщение от pax (Сообщение 220904)
Есть у кого идеи на этот счет?

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

pax 28.02.2012 23:43

Ответ: Пространство треугольника
 
Как получить точку внутри треугольника проблем не составляет, проблема в расстановке точек.
И мне не надо считать получаемое количество точек, мне надо расставить заданное количество.

Я пробовал использовать барицентрические координаты рандомно расставляя точки, получается примерно то что я хотел, но часто точки ставятся слишком близко друг к другу и получаются "острова", что мне не нужно.

Mr_F_ 29.02.2012 01:06

Ответ: Пространство треугольника
 
может быть хранить препросчитанные паттерны псевдорандомности без островов? т.е. 2д массивы, содержащие некий ноис с желаемым паттерном.
хранить некоторое количество таких массивов, например 8.
затем интерполировать параметр плотности между точками треугольника, и по результату выбирать правильный препросчитанный паттерн. мне кажется, если паттерны не будут тайлится, то небольшая дискретность не будет заметна вообще.

похожим образом работают шейдеры аля "карандшаная штриховка" - мы по градации освещения выбираем 1 из нескольких вариантов штриховки.

pax 29.02.2012 09:20

Ответ: Пространство треугольника
 
Надо будет подумать над этим, спасибо за совет.


Часовой пояс GMT +4, время: 09:13.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot