Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование в широком смысле слова > Алгоритмика

Алгоритмика Об алгоритмах вообще; методы, обсуждения способов решения

Ответ
 
Опции темы
Старый 28.02.2012, 17:03   #1
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Пространство треугольника

Стоит следующая задача:

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

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

Есть у кого идеи на этот счет?
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 28.02.2012, 18:35   #2
Платон Александрович
Нуждающийся
 
Аватар для Платон Александрович
 
Регистрация: 05.10.2011
Адрес: Россия, Южно-Сахалинск
Сообщений: 66
Написано 42 полезных сообщений
(для 83 пользователей)
Ответ: Пространство треугольника

Сообщение от pax Посмотреть сообщение
Есть у кого идеи на этот счет?
Думаю сойдет любой алгоритм растеризации треугольников, интерполируешь веса между вершинами и получаемый вес используешь для интерполяции координат.
С ограничением числа точек чуть сложнее, можно попробовать посчитать получаемое кол-во точек ( как-то через площадь может? ) ну и соотношение с ограничением использовать в интерполяции.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Платон Александрович за это полезное сообщение:
pax (29.02.2012), Taugeshtu (28.02.2012)
Старый 28.02.2012, 23:43   #3
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Пространство треугольника

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

Я пробовал использовать барицентрические координаты рандомно расставляя точки, получается примерно то что я хотел, но часто точки ставятся слишком близко друг к другу и получаются "острова", что мне не нужно.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 29.02.2012, 01:06   #4
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Пространство треугольника

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

похожим образом работают шейдеры аля "карандшаная штриховка" - мы по градации освещения выбираем 1 из нескольких вариантов штриховки.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Mr_F_ за это полезное сообщение:
HolyDel (29.02.2012), pax (29.02.2012)
Старый 29.02.2012, 09:20   #5
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Пространство треугольника

Надо будет подумать над этим, спасибо за совет.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com