0 / 0 / 1
Регистрация: 17.09.2015
Сообщений: 51
|
|
1 | |
Вычисление цвета на градиенте в зависимости от значения функции21.11.2019, 16:18. Показов 4328. Ответов 10
Здравствуйте
Хотелось бы получить небольшой совет или ссылку на статью по правильному вычислению цвета Задача следующая: на палетке выбирается два цвета, рисуется Rectangle c заливкой линейным градиентом от первого цвета до второго, слева направо. Это все реализовано. Затем, у нас есть массив значений функции. Задача состоит в том, чтобы привязать значения функции к цветам, то есть минимальное значение - левая граница, максимальное - правая, остальные - пропорционально. Вывести значения цвета в каждой точке. Как необходимо действовать? Смешивать цвета по каким либо формулам? Если да, то как? Просто брать среднее?
0
|
21.11.2019, 16:18 | |
Ответы с готовыми решениями:
10
Вычисление значения функции в зависимости от аргумента Изменение цвета строки в зависимости от значения Изменение цвета поля в зависимости от значения Смена цвета текста, в зависимости от значения |
фрилансер
5853 / 5392 / 1103
Регистрация: 11.10.2019
Сообщений: 14,394
|
|||||||||||
21.11.2019, 16:53 | 2 | ||||||||||
я думаю, нужно произвести пропорциональное преобразование:
0
|
0 / 0 / 1
Регистрация: 17.09.2015
Сообщений: 51
|
|
21.11.2019, 17:12 [ТС] | 3 |
Алексей1153, спасибо
с пропорциями то понятно, непонятно как от относительного положения перейти непосредственно к значению формата RGB там же вроде бы не просто пропорциональное преобразование каждой из компонент?
0
|
фрилансер
5853 / 5392 / 1103
Регистрация: 11.10.2019
Сообщений: 14,394
|
||||||
21.11.2019, 18:14 | 4 | |||||
Сообщение было отмечено zloi_templar как решение
Решение
zloi_templar, именно каждый компонент QColor точно также пропорционально взять. Только прозрачность можно принудительно определённую оставить
вроде так
1
|
90 / 17 / 6
Регистрация: 21.09.2016
Сообщений: 176
|
|
21.11.2019, 19:01 | 5 |
zloi_templar, Привет! Я так понял Вы решаете дифференциальные уравнения, а потом красите сетку?
0
|
фрилансер
5853 / 5392 / 1103
Регистрация: 11.10.2019
Сообщений: 14,394
|
|
21.11.2019, 20:55 | 6 |
zloi_templar, кстати, раз такое дело, почитай про классы QGradient и его производные QConicalGradient, QLinearGradient, QRadialGradient, с ними такую красоту наводить можно. Аппаратное ускорение прилагается )
0
|
0 / 0 / 1
Регистрация: 17.09.2015
Сообщений: 51
|
|
22.11.2019, 12:44 [ТС] | 7 |
Алексей1153, спасибо) удивлен, если честно
Не думал, что с цветами сработают такие пропорциональные преобразования) думал там все гораздо сложнее, стандартом не обойтись) Для отображения палитры я и использую QLinearGradient) Аппаратное ускорение не нужно включать программно? Добавлено через 2 минуты RJM, нет, задача проще, есть график функции, я заливаю весь экран цветами по значениям
0
|
фрилансер
5853 / 5392 / 1103
Регистрация: 11.10.2019
Сообщений: 14,394
|
|
22.11.2019, 13:33 | 8 |
по-моему, оно сразу из коробки включено, и наверняка это OGL
я делал аналог jinx (не доделал, так как заказчик пропал, но некоторые эффекты реализовал) например, вот такая вертушка (сделанная вышеуказанными градиентами) крутится, а на другом скрине - суммарные эффекты четырёх-восьми картинок с линейными градиентами (по движению напоминает рябь на воде) FPS очень бодрый, хотя я специально не включал ускорение. Процессор нагружен хорошо для второго скрина, там я расчитываю много всего в реальном времени и миксую картинки. Думаю, если покопаться и
0
|
0 / 0 / 1
Регистрация: 17.09.2015
Сообщений: 51
|
||||||
26.11.2019, 15:50 [ТС] | 9 | |||||
Алексей1153, c цветами оказывается немного неверно)
Только что заметил, что получаются другие цвета, особенно когда есть нулевая компонента Переписал пропорции, с ними вроде бы верно:
0
|
фрилансер
5853 / 5392 / 1103
Регистрация: 11.10.2019
Сообщений: 14,394
|
|
26.11.2019, 16:52 | 10 |
zloi_templar, в моём варианте обязательна проверка if(red2>=red1) , иначе из-за переполнения в байте будет неверный результат. Твой вариант считает в вещественных числах
0
|
0 / 0 / 1
Регистрация: 17.09.2015
Сообщений: 51
|
|
26.11.2019, 17:58 [ТС] | 11 |
Алексей1153, ну он же автоматом округляет до целого в QColor)
у меня в линейном градиенте, при смешивании двух цветов, только так работает
0
|
26.11.2019, 17:58 | |
26.11.2019, 17:58 | |
Помогаю со студенческими работами здесь
11
Изменение цвета поля в зависимости от значения Изменение значения ячейки в зависимости от цвета Вычисление значения выражения в зависимости от значения аргумента Изменение цвета точки в зависимости от значения температуры Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Что такое HCL Notes и как с ним работать
InfoMaster 10.01.2025
HCL Notes (ранее известный как IBM Notes и Lotus Notes) представляет собой комплексную платформу для совместной работы и обмена информацией в корпоративной среде. Это многофункциональное решение,. . .
|
Как работать с Git из Windows и Visual Studio
InfoMaster 10.01.2025
Работа с Git в Windows
Работа с Git в операционной системе Windows может быть осуществлена с помощью различных инструментов, каждый из которых обладает своими уникальными возможностями и. . .
|
Аналог оператора switch case в Python
InfoMaster 10.01.2025
Оператор switch case используется в программировании для выбора одного из нескольких вариантов исполнения кода. Однако в языке Python этот оператор отсутствует. Понимание аналогов switch case в. . .
|
Отличия абстрактного класса от интерфейса
InfoMaster 10.01.2025
В современной разработке программного обеспечения существуют два основных механизма реализации абстракции: абстрактные классы и интерфейсы. Эти инструменты, хотя и схожи в своей основной цели -. . .
|
Как работать в Git
InfoMaster 10.01.2025
Git — это одна из наиболее популярных систем контроля версий, которая активно используется разработчиками по всему миру. Она позволяет эффективно управлять изменениями в коде, координировать работу. . .
|
Реализация передвижения персонажа в Unity3d на C#
InfoMaster 10.01.2025
Реализация передвижения персонажа в Unity3D начинается с правильной настройки проекта. Этот этап критически важен для создания отзывчивого и плавного управления. Рассмотрим основные шаги для создания. . .
|
Docker: руководство для начинающих
InfoMaster 10.01.2025
В современном мире разработки программного обеспечения контейнеризация стала неотъемлемой частью процесса создания и развертывания приложений. Docker, как ведущая платформа контейнеризации, произвела. . .
|
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства
Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
|
Что такое NullReferenceException и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
|
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
|
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
|
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
|