Форум программистов, компьютерный форум, киберфорум
Теория программирования
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 24.09.2018
Сообщений: 2

Градиентная заливка

25.11.2018, 09:41. Показов 2328. Ответов 3

Студворк — интернет-сервис помощи студентам
Здравствуйте. Столкнулся с такой проблемой: есть набор точек (x, y, цвет) на плоскости, причём удалось построить матрицу, т.е. по стобцам с одинаковыми x, по строкам с одинаковыми y. Но между этими строками/столбцами есть разрывы в 1-4 единицы. Точек порядка 100 тыс. Пиксельная отрисовка делается долго, и криво с пустыми местами. Нужно по заданому набору точек отрисовать градиент с равномерными переходами. Как это можно сделать?
Делать можно на Java, C#, Javascript'e без разницы. Достойную литературу нигде найти не смог.
Внизу прикрепляю рисунок с примерным выводом, только там слишком резкие границы.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.11.2018, 09:41
Ответы с готовыми решениями:

Заливка контура фигуры
цвет вне контура фигуры и внутри одинаковый. вот это задача интересная, сижу ломаю голову, это не наращивание слоя. наращивание...

Градиентная заливка
Для градиентной заливки использую два цвета создал фунцию улучшил немного пример брал с delphi проэкта но вот беда если при слишком...

Градиентная заливка
Помогите , пожалуйста! Мне нужна следующая программа: на форме расположены два текстбокса, в которые вводятся коды rgb для создания...

3
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,038
26.11.2018, 14:07
В общем случае тебе бы понадобилась Триангуляция Делоне плюс интерполяция внутри треугольников.
Но поскольку у тебя точки выстроены по столбцам и строкам, то в "пустых" клетках считать цвет так - берешь ближайшие 4 известные точки, из них должен получится прямоугольник. Потом делаешь линейную интерполяцию по вертикальным сторонам прямоугольника, потом из этих двух найденных значений делаешь линейную интерполяцию по горизонтали.
При этом если же у тебя нет пустых клеток или по горизонтали или по вертикали, то берешь только две соответствующие известные клетки и только один раз между ними делаешь линейную интерполяцию.
Но это самый простой вариант.
1
0 / 0 / 0
Регистрация: 24.09.2018
Сообщений: 2
26.11.2018, 19:45  [ТС]
Добавлено через 3 часа 53 минуты
wingblack,
Цитата Сообщение от wingblack Посмотреть сообщение
Потом делаешь линейную интерполяцию по вертикальным сторонам прямоугольника, потом из этих двух найденных значений делаешь линейную интерполяцию по горизонтали.
Не совсем понял как это делается, с линейной интерполяцией знаком, это понятно, сделать от точки до точки. Как с его помощью залить прямоугольник?
0
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,038
27.11.2018, 15:06
Лучший ответ Сообщение было отмечено MrBoogie27 как решение

Решение

Цитата Сообщение от MrBoogie27 Посмотреть сообщение
Не совсем понял как это делается, с линейной интерполяцией знаком, это понятно, сделать от точки до точки. Как с его помощью залить прямоугольник?
Немного уточняю формулировку.
Сначала делаешь линейную интерполяцию разрывов отдельно по строкам и по столбцам.
После этого у тебя из пробелов остаются только прямоугольники на местах "перекрестков".
Берешь такой прямоугольник, только чтобы в его контур вошел один слой из не пустых ячеек.
Выбираешь направление либо по горизонтали, либо по вертикали, и вдоль этого направления делаешь по строкам (или по столбцам) интерполяцию внутри отрезков где на краях у тебя известные значения.\

Надеюсь объяснять как делать линейную интерполяцию цвета пикселей между двумя известными значениями - не нужно?

P.S. Вообще... можно сначала сделать интерполяцию по строкам, например, и уже после этого вторым шагом делать интерполяцию по столбцам, тогда не будет необходимости рассматривать прямоугольник как отдельный случай.
Миниатюры
Градиентная заливка  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.11.2018, 15:06
Помогаю со студенческими работами здесь

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

Градиентная заливка формы
using System; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; ...

Градиентная заливка изображения
Помогите пожалуйста, не могу составить алгоритм, чтобы изображение любого размера заливалось градиентом. Вот есть алгоритм, но этот...

Градиентная заливка + поворот
Здравствуйте, форумчане. Прошу у вас помощи с таким заданием - Необходимо квадрат (пользователь вводит координаты центра) залить...

Некорректная градиентная заливка в гистограмме
Здравствуйте. Делаю градиентную заливку для своей гистограммы. Если значения в гистограмме сильно разнятся (в данном случаи максимальное...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru