Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
xkpukx
4 / 4 / 0
Регистрация: 12.12.2010
Сообщений: 184
1

Передать в переменную оттенки красного

05.05.2012, 12:03. Просмотров 1741. Ответов 25
Метки нет (Все метки)

Допустим есть
Visual Basic
1
If t = vbRed Then
как переделать это не только vbRed ну и другие оттенки красного?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.05.2012, 12:03
Ответы с готовыми решениями:

Как подключится к базе и передать переменную
Я имею: файл Get_EUR.vbs => запускаю из коммандной строки видовоза, получаю переменную со...

Передать в переменную только текст html страницы
Всем привет! Просьба помочь. Не нашел решения, нужно загрузить содержимое html страницы (без...

стандартные отчёты VB6 (DataReport) Как передать напрямую переменную из формы ?
стандартные отчёты VB6 (DataReport) Как передать напрямую переменную из формы ? Подскажите, как...

Создать светлые/тёмные оттенки, цвет задан в HEX
The trick поделился крутым классом для рисования прямоугольников с регулируемой прозрачностью фона...

Как определить разные оттенки красного?
Здравствуйте, я новичок на С++, так что может вопрос покажется глупым. Как определить разные...

25
PAnT0P
1029 / 553 / 106
Регистрация: 26.03.2012
Сообщений: 993
05.05.2012, 12:21 2
Никак. Язык программирования (любой) подразумевает точное сравнение и для него нет такого понятия примерно красный. Да и человеческое восприятие цвета тоже сугубо индивидуальное, например возьмем фиолетовый цвет, кто то скажет, что это оттенок красного, а кто то синего.
0
Апострофф
Заблокирован
05.05.2012, 12:23 3
Может так?
Visual Basic
1
2
3
If t and vbRed Then 
  'Какой то процент красного тут есть
endif
0
xkpukx
4 / 4 / 0
Регистрация: 12.12.2010
Сообщений: 184
05.05.2012, 12:53  [ТС] 4
Цитата Сообщение от Апострофф Посмотреть сообщение
Может так?
Visual Basic
1
2
3
If t and vbRed Then 
  'Какой то процент красного тут есть
endif
Не, вообще перестало искать то что нужно было(

Попробую мб через тройной цикл и через подставляя перменые в RGB, конечно ппц долго это будет..
0
05.05.2012, 12:53
PAnT0P
1029 / 553 / 106
Регистрация: 26.03.2012
Сообщений: 993
05.05.2012, 13:03 5
Единственно что можно сделать это оценивать пропорциональное соотношение каналов RGB из которого составляются цвета. Сначала вывести экспериментальным образом некий коэффициент преобладания одного канала над другим при котором глаз будет четко определять оттенок цвета. Например возьмем условно его равным 1.25, тогда твое условие для основных цветов можно записать так:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
    K = 1.25
    Select Case True
      Case R > G * K And R > B * K
        ColorTone = "Красный"
      Case G > R * K And G > B * K
        ColorTone = "Синий"
      Case B > R * K And B > G * K
        ColorTone = "Зеленый"
      Case Else
        ColorTone = "Отсутствует"
    End Select
2
Вложения
Тип файла: zip Test.zip (14.9 Кб, 11 просмотров)
PAnT0P
1029 / 553 / 106
Регистрация: 26.03.2012
Сообщений: 993
05.05.2012, 13:35 6
Пока тыкал по клавишам, ты сам дошел до того что нужно сравнивать пропорциональное соотношение каналов

Добавлено через 28 минут
Вполне возможен вариант, что надо сравнивать не пропорциональное а линейное преобладание одного цвета над другим, с коэффициентом побольше K=20~50
Visual Basic
1
Case R > G + K And R > B + K
Посмотри как лучше воспринимается глазом. Или вообще для каждого канала подобрать индивидуальный коэффициент, т.к. человеческий глаз воспринимает цветовой спектр не равномерно.
0
SoftIce
es geht mir gut
11189 / 4613 / 1161
Регистрация: 27.07.2011
Сообщений: 11,318
Завершенные тесты: 1
05.05.2012, 14:16 7
А узнать RGB можно так
Visual Basic
1
2
3
4
5
6
7
8
9
Private Sub Command1_Click()
Dim c As Long, R As Integer, G As Integer, B As Integer, BG As Integer
c = Picture1.Point(10, 10)
R = c Mod 256
BG = c / 256
G = BG Mod 256
B = BG / 256
Print " R = "; R; ", G = "; G; ", B = "; B
End Sub
1
PAnT0P
1029 / 553 / 106
Регистрация: 26.03.2012
Сообщений: 993
05.05.2012, 14:18 8
Цитата Сообщение от SoftIce Посмотреть сообщение
А узнать RGB можно так
Visual Basic
1
2
3
4
5
6
7
8
9
Private Sub Command1_Click()
Dim c As Long, R As Integer, G As Integer, B As Integer, BG As Integer
c = Picture1.Point(10, 10)
R = c Mod 256
BG = c / 256
G = BG Mod 256
B = BG / 256
Print " R = "; R; ", G = "; G; ", B = "; B
End Sub
Во вложении есть подобная функция
0
SoftIce
es geht mir gut
11189 / 4613 / 1161
Регистрация: 27.07.2011
Сообщений: 11,318
Завершенные тесты: 1
05.05.2012, 14:24 9
Цитата Сообщение от PAnT0P Посмотреть сообщение
Во вложении есть подобная функция
Извини не посмотрел

Добавлено через 4 минуты
Цитата Сообщение от PAnT0P Посмотреть сообщение
человеческий глаз воспринимает цветовой спектр не равномерно
У меня левый глаз видит больше красных оттенков, а правый - синих
0
PAnT0P
1029 / 553 / 106
Регистрация: 26.03.2012
Сообщений: 993
05.05.2012, 14:33 10
Цитата Сообщение от SoftIce Посмотреть сообщение
Извини не посмотрел

Добавлено через 4 минуты

У меня левый глаз видит больше красных оттенков, а правый - синих
Я не о том, вот например: ПРИМЕР - какой оттенок у текста?
0
SoftIce
es geht mir gut
11189 / 4613 / 1161
Регистрация: 27.07.2011
Сообщений: 11,318
Завершенные тесты: 1
05.05.2012, 14:37 11
Цитата Сообщение от PAnT0P Посмотреть сообщение
ПРИМЕР - какой оттенок у текста
Розовый?
0
Миниатюры
Передать в переменную оттенки красного  
SoftIce
es geht mir gut
11189 / 4613 / 1161
Регистрация: 27.07.2011
Сообщений: 11,318
Завершенные тесты: 1
05.05.2012, 14:38 12
Цитата Сообщение от PAnT0P Посмотреть сообщение
ПРИМЕР - какой оттенок у текста
Фуксия?
0
PAnT0P
1029 / 553 / 106
Регистрация: 26.03.2012
Сообщений: 993
05.05.2012, 14:41 13
Цитата Сообщение от SoftIce Посмотреть сообщение
Розовый?
Ну я вообще то спрашивал про основные цвета к чему ближе - красный синий или зеленый.
Ну примем что розовый это красный ок? На самом деле там красного и синего цвета одинаково. Об этом я и говорю, что глаз воспринимает цветовой спектр не равномерно: красный - больше, синий - меньше.
0
xkpukx
4 / 4 / 0
Регистрация: 12.12.2010
Сообщений: 184
05.05.2012, 18:49  [ТС] 14
ну вы прям спасли мою курсовую) спс!
0
dev.Free
Заблокирован
05.05.2012, 18:51 15
Если я не туплю, то там вроде бы есть функция выбора оттенка у каждого элемента управления. Если я реально не туплю, то вот несколько оттенков красного. А вообще вроде бы можно не писать к примеру
Visual Basic
1
Label1.BackColor = vbRed
можно примерно так выбрать оттенок:
Visual Basic
1
Label1.BackColor = &H231EF9
Там на сколько я еще знаю можно и цветовую гамму подбирать.
0
Миниатюры
Передать в переменную оттенки красного  
PAnT0P
1029 / 553 / 106
Регистрация: 26.03.2012
Сообщений: 993
05.05.2012, 19:04 16
Цитата Сообщение от inv.DS Посмотреть сообщение
Если я не туплю
Ты реально тупишь , речь идет не об окраске контрола, а о допустим выборке каких то объектов по цветовому оттенку. Допустим нужно выбрать все товары красного оттенка.
0
dev.Free
Заблокирован
05.05.2012, 19:11 17
Цитата Сообщение от PAnT0P Посмотреть сообщение
Ты реально тупишь , речь идет не об окраске контрола, а о допустим выборке каких то объектов по цветовому оттенку. Допустим нужно выбрать все товары красного оттенка.
Можно сделать многое! Если ты понял, скажи где именно он хочет выбрать по оттенкам, в каких местах и условиях?
0
xkpukx
4 / 4 / 0
Регистрация: 12.12.2010
Сообщений: 184
05.05.2012, 19:21  [ТС] 18
Нужно на рисунки найти круг.. за маркер у нас выступает красный цвет и его оттенки.. примерно как
на картинке, ну раптор как мне кажется нашел самый оптимальный вариант.. круче него ток яйца
0
Миниатюры
Передать в переменную оттенки красного  
tarakano
34 / 26 / 0
Регистрация: 24.12.2010
Сообщений: 165
06.05.2012, 01:45 19
xkpukx, когда доделаешь проект - скинь его сюда, будет интересно посмотреть, как он работает
0
xkpukx
4 / 4 / 0
Регистрация: 12.12.2010
Сообщений: 184
06.05.2012, 22:47  [ТС] 20
Лови=) совместными усилиями собралась моя и работа курсовая=)
1
06.05.2012, 22:47
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.05.2012, 22:47

Как передать из ACCESS переменную STRING в переменную окружения (типа CMD команды SET=)
Добрый день! Подскажите как установить переменную окружения из ACCESS. Допустим у меня есть...

Как передать переменную окна через текстовую переменную?
Открыл одно окно, потом второе, и хочу передать индетефикатор первого окна во второе, чтобы оно там...

Как строковую переменную передать из TStringStream в переменную String?
Доброе время суток! Подскажите, как строковую переменную передать из TStringStream в...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.