|
178 / 33 / 17
Регистрация: 02.02.2014
Сообщений: 373
|
|
Двумерный градиент26.09.2019, 19:41. Показов 4201. Ответов 9
Привет всем! Столкнулся с такой задачей: на поле размером W x H размещено N точек, с координатами (Xn, Yn), каждой из которых задан цвет. Нужно рассчитать двумерный градиент, плавный переход цветов на поле. При этом в исходных точках цвет должен получиться исходным, без примесей. При этом (!) варианты с линейной и кубической интерполяцией не подходят (которые, по сути, являются проведением аналогии с одномерными градиентами). Есть ли какое-либо известное решение у этой задачи, или всё что не линейная/кубическая интерполяция это нетривиальщина?
0
|
|
| 26.09.2019, 19:41 | |
|
Ответы с готовыми решениями:
9
Градиент Двумерный массив преобразовать в двумерный List<T>
|
|
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
|
|
| 27.09.2019, 10:27 | |
|
Хоть двумерный хоть пятимерный.
Считаем расстояние до точек где цвет 100% и смешиваем цвета пропорционально расстоянию.
0
|
|
|
178 / 33 / 17
Регистрация: 02.02.2014
Сообщений: 373
|
|||||||
| 27.09.2019, 10:43 [ТС] | |||||||
![]() У меня не получается задать такую формулу, которая, если применить её к опорной точке - выдаст цвет этой опорной точки без примесей, если применить к любым другим - выдаст цвет плавного перехода. Т.е. если мы делаем что-то вроде
Я попытался реализовать через поиск трёх ближайших точек, но всё равно получилось неправильно.
0
|
|||||||
|
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
|
|||
| 28.09.2019, 02:12 | |||
![]() За десять минут гугления самое близкое и хоть примерно куда копать понятное что я нашел это
В общем похоже тут без
0
|
|||
|
Модератор
|
||
| 02.10.2019, 08:12 | ||
Если правильно понял задачу, то треба разбить всю плоскость на треугольники с вершинами в заданных точках. По сторонам треугольников цвета задать через линейную интерполяцию. В центре треугольника поставить точку со средним цветом. Все остальные точки считать как линейную интерполяцию между центральной и точкой ребра в этом направлении.
0
|
||
|
178 / 33 / 17
Регистрация: 02.02.2014
Сообщений: 373
|
||
| 02.10.2019, 21:21 [ТС] | ||
). Барицентр треугольника итак имеет цвет среднего арифметического трёх цветов, поэтому если каждый треугольник разбить на 3 с вершиной в барицентре исходного треугольника, то картина не меняется.Вот пример такого перескока: Вариант А Вариант Б По идее оно должно работать независимо от порядка триангуляции. Может надо как-то двигать центр масс треугольников? Или использовать нелинейную интерполяцию? Добавлено через 8 минут Вот как когда сопромат моста, например, считают - там же тоже разбивают на треугольники. Но там математически доказано, что независимо от моего способа разбиения на треугольники, результат будет одинаковый (+- погрешность). Здесь, я думал, будет так же, но выяснилось, что очевидно, что нет. Как же добиться результата, который не зависит от способа триангуляции?
0
|
||
|
Модератор
|
|
| 03.10.2019, 06:43 | |
|
VBDUnit, здесь или надо в теорию вкапываться. А это раздел программистов C#, а не теоретиков.
Или методом "научного тыка" пробовать разные способы. Может имеет смысл обратиться в разделы где обсуждается графика, мультимедиа, игры. Добавлено через 6 минут Из "научного тыка". Чтобы не было резких рёбер, то надо определять окружение точки. Определить для искомой точки ближайших известных соседей (4-6) и цвет определять как смесь цветов этих соседей обратно пропорционально расстоянию до них. Но надо как-то выбрать ближайших соседей чтобы они были со всех сторон, то есть чтобы было круговой охват.
0
|
|
|
677 / 479 / 216
Регистрация: 06.09.2013
Сообщений: 1,312
|
|
| 03.10.2019, 17:17 | |
|
Ищите материалы про rbf-интерполяцию (rbf - radial basis functions), начать можно отсюда
https://en.wikipedia.org/wiki/... erpolation
2
|
|
|
178 / 33 / 17
Регистрация: 02.02.2014
Сообщений: 373
|
|||
| 07.10.2019, 12:05 [ТС] | |||
woldemas, могу ли я получить краткий ликбез о принципе работы этой штуки простыми словами, прежде чем окунуться в пучину матана? Чтобы сразу понимать в какую сторону идти?
0
|
|||
|
677 / 479 / 216
Регистрация: 06.09.2013
Сообщений: 1,312
|
||
| 07.10.2019, 15:17 | ||
Сообщение было отмечено Элд Хасп как решение
РешениеНо вроде суть там простая и особого матана нет: просто для каждого узла берется функция от двумерной координаты (x, y), которая стремится к нулю с увеличением расстояния от соответствующего узла. Если N узлов, получится N функций. Значение цвета каждой точки двумерной плоскости будет равно взвешенной сумме значений функций: Чтобы найти Параметр альфа в степени гауссова ядра позволяет регулировать влияние каждого из узлов. Так в теории, на практике не знаю, может есть нюансы. По крайней мере при интерполяции цветов, мне кажется, цвет будет изменяться более плавно и симметрично относительно узлов, чем при использовании триангуляции.
2
|
||
| 07.10.2019, 15:17 | |
|
Помогаю со студенческими работами здесь
10
Градиент с зарытой собакой DrawString: неоднородная заливка текста. Градиент приветствуется градиент Градиент Градиент Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В. . .
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|