случайный, но обязательно яркий цвет

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

случайный, но обязательно яркий цвет

Сообщение arthur2 » 14.01.2011 (Пт) 17:34

Нужно сгенерировать новый цвет текста на белом фоне с условием, чтобы каждый раз цвет получался яркий, не бледный.
Артур
 
   

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: случайный, но обязательно яркий цвет

Сообщение Antonariy » 14.01.2011 (Пт) 18:21

Яркость рассчитывается по формуле Ярк=0.3*R+0.59*G+0.11*B.
Лучший способ понять что-то самому — объяснить это другому.

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: случайный, но обязательно яркий цвет

Сообщение arthur2 » 14.01.2011 (Пт) 20:31

Ага, спасибо... в общем, таком разе, мне нужна не яркость, а насыщенность :oops:
Артур
 
   

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: случайный, но обязательно яркий цвет

Сообщение alibek » 14.01.2011 (Пт) 20:42

Почему бы не сделать набор подходящих цветов и не выбирать случайный индекс?
Случайный насыщенный цвет — это бессмыслица.
Lasciate ogni speranza, voi ch'entrate.

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: случайный, но обязательно яркий цвет

Сообщение arthur2 » 14.01.2011 (Пт) 21:02

alibek писал(а):Почему бы не сделать набор подходящих цветов и не выбирать случайный индекс?
Ну, можно и так :)
alibek писал(а):Случайный насыщенный цвет — это бессмыслица.
Почему?
Артур
 
   

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: случайный, но обязательно яркий цвет

Сообщение Antonariy » 14.01.2011 (Пт) 21:20

Потому что насыщенность менее конкретное понятие, чем яркость. Загляни сам в википедию, как бы ни было лень.
Лучший способ понять что-то самому — объяснить это другому.

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: случайный, но обязательно яркий цвет

Сообщение arthur2 » 14.01.2011 (Пт) 21:29

Да я уже заглянул - о чём и сообщил в своём втором посте.
И вообще-то, уже сделал что мне надо :) тем более странно, что "это бессмыслено"
Артур
 
   

vasatka
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 13.01.2011 (Чт) 13:50

Re: случайный, но обязательно яркий цвет

Сообщение vasatka » 14.01.2011 (Пт) 21:30

Код: Выделить всё
Sub Dither(vForm As Form)
Dim intLoop As Integer
  vForm.DrawStyle = vbInsideSolid
  vForm.DrawMode = vbCopyPen
  vForm.ScaleMode = vbPixels
  vForm.DrawWidth = 2
  vForm.ScaleHeight = 256
   For intLoop = 0 To 255
    vForm.Line (0, intLoop)-(Screen.Width, intLoop - 1), _
    RGB(RED, GREEN, BLUE - intLoop), B
   Next intLoop
End Sub

Private Sub Form_Back_Color_Click() '  MENU
RED = Rnd * 250 / 3: GREEN = Rnd * 250 / 2: BLUE = 255
Dither Me
LabelKeyBoard.Caption = Str(RED) + Str(GREEN)
End Sub

[Viper] :: Пользуйся тэгом CODE!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: случайный, но обязательно яркий цвет

Сообщение alibek » 14.01.2011 (Пт) 21:43

arthur2 писал(а):Почему?

Это же очевидно.
Сформулируй частную задачу, где нужно получить случайный насыщенный цвет?
Lasciate ogni speranza, voi ch'entrate.

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: случайный, но обязательно яркий цвет

Сообщение arthur2 » 14.01.2011 (Пт) 22:07

vasatkaПрикольная градиента... а к чему это?

alibek писал(а):Это же очевидно.
Сформулируй частную задачу, где нужно получить случайный насыщенный цвет?


Получить случайные значения r, g и b, подходящие для заданного значения насыщенности :)
Артур
 
   

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: случайный, но обязательно яркий цвет

Сообщение arthur2 » 15.01.2011 (Сб) 14:24

ну так в чём бессмысленность-то? я как-то заинтригован :
Артур
 
   

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: случайный, но обязательно яркий цвет

Сообщение alibek » 15.01.2011 (Сб) 23:00

alibek писал(а):Сформулируй частную задачу, где нужно получить случайный насыщенный цвет?
Lasciate ogni speranza, voi ch'entrate.

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: случайный, но обязательно яркий цвет

Сообщение arthur2 » 16.01.2011 (Вс) 8:36

Я не могу тебя понять: что я сформулировал не так?

Нужно, чтобы текст был с цветом, насыщенность которого от 0,8 до 1. Вот как я получаю случайный цвет заданной насыщенности:

Насыщенность выражается формулой S=1-min/max, где min и max - минимальное и максимальное значение из r, g и b.

1. Насыщенность знаем.
2. Получаем случайное значение max (ограничив значение снизу, чтобы цвет получился не слишком тёмным).
3. Зная насыщенность и max, получаем min.
4. Генерируем случайное число third между min и max.
5. Результатом будет RGB от min, max и third, перемешанных опять же случайным образом.

В чём бессмысленность?
Последний раз редактировалось arthur2 16.01.2011 (Вс) 11:26, всего редактировалось 1 раз.
Артур
 
   

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: случайный, но обязательно яркий цвет

Сообщение alibek » 16.01.2011 (Вс) 9:48

Практические задачи так не формулируются.
Может быть формулировка "цветомузыка, красная составляющая в которой определяется ритмом, а зеленая и синяя басами и средними тонами".
Задачи абстрактные, теоретические, в реализации не нуждаются.
Lasciate ogni speranza, voi ch'entrate.

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: случайный, но обязательно яркий цвет

Сообщение arthur2 » 16.01.2011 (Вс) 10:23

Ты мне скажи: то, что я описал - это разве не получение случайного цвета заданной насыщенности?

А практическая задача в первом посте. Заменить только "яркость" на "насыщенность".
Артур
 
   

Alec
Бывалый
Бывалый
 
Сообщения: 275
Зарегистрирован: 31.08.2008 (Вс) 0:15
Откуда: Ростов-на-Дону

Re: случайный, но обязательно яркий цвет

Сообщение Alec » 16.01.2011 (Вс) 11:16

arthur2 писал(а):Я не могу тебя понять: что я сформулировал не так?

Нужно, чтобы текст был с цветом, насыщенность которого от 0,8 до 1. Насыщенность выражается формулой S=1-min/max, где min и max - минимальное и максимальное значение из r, g и b.

1. Насыщенность знаем.
2. Получаем случайное значение max (ограничив значение снизу, чтобы цвет получился не слишком тёмным).
3. Зная насыщенность и max, получаем min.
4. Генерируем случайное число third между min и max.
5. Результатом будет RGB от min, max и third, перемешанных опять же случайным образом.

Ну так возьми описание HSV и правила перевода HSV в RGB.
Иногда лучше вовремя остановиться...
И начать заново!

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: случайный, но обязательно яркий цвет

Сообщение arthur2 » 16.01.2011 (Вс) 11:20

Alec :shock: А я, по-твоему, что взял?
Артур
 
   

Alec
Бывалый
Бывалый
 
Сообщения: 275
Зарегистрирован: 31.08.2008 (Вс) 0:15
Откуда: Ростов-на-Дону

Re: случайный, но обязательно яркий цвет

Сообщение Alec » 16.01.2011 (Вс) 11:42

Ты взял только значение компонента S, а потом хочешь какие-то случайные значения перемешать каким-то случайным способом, чтобы получить RGB...
S у тебя есть, так? V, в принципе, тоже - это max. Выбирай случайное значение H от 0 до 359 и вычисляй по формулам R, G и B.
Иногда лучше вовремя остановиться...
И начать заново!

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: случайный, но обязательно яркий цвет

Сообщение arthur2 » 16.01.2011 (Вс) 12:00

Alec писал(а):а потом хочешь какие-то случайные значения перемешать каким-то случайным способом
Именно это я хочу - чтобы на выходе был случайный цвет заданной насыщенности.
Alec писал(а):V, в принципе, тоже - это max.
Ага, но его я получаю случайным образом.
Alec писал(а):Выбирай случайное значение H от 0 до 359 и вычисляй по формулам R, G и B.
Min я могу получить уже не случайно. Теперь два цвета у меня уже есть. Третье число получаю как случайное между min и max. Все три цвета уже есть, их порядок внутри rgb - не важен, потому что всё равно получится заданная насыщенность.

Задана только S. Ты предлагаешь получить случайно V(оно же max) и случайно H. Я делаю то же самое (случайный тон - это как раз случайный порядок полученных rgb). Мой подход получается из твоего путем упрощения формул.
Артур
 
   

Alec
Бывалый
Бывалый
 
Сообщения: 275
Зарегистрирован: 31.08.2008 (Вс) 0:15
Откуда: Ростов-на-Дону

Re: случайный, но обязательно яркий цвет

Сообщение Alec » 16.01.2011 (Вс) 12:18

Гм. Что-то в этом есть :)
Т.е. ты подбор случайного тона заменил на выбор значений компонентов (т.н. вычисляемого min и случайного third) и выбор одного из шести вариантов присвоения значений min, max и third компонентам R, G, B.
Смутило действие
arthur2 писал(а):5. Результатом будет RGB от min, max и third, перемешанных опять же случайным образом.
Иногда лучше вовремя остановиться...
И начать заново!

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: случайный, но обязательно яркий цвет

Сообщение arthur2 » 16.01.2011 (Вс) 12:29

Alec писал(а):Смутило действие
Ну, видимо, я просто не очень внятно выразился :oops:
Артур
 
   

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: случайный, но обязательно яркий цвет

Сообщение Mikle » 17.01.2011 (Пн) 11:04

Насколько понял, нужна не яркость, и не насыщенность, а контраст с цветом фона. Если в формулу:
Antonariy писал(а):0.3*R+0.59*G+0.11*B

вместо RGB подставить разность соответствующих ввеличин для фона и текста, то получишь нужную величину, то есть:
Код: Выделить всё
R = R_фона - R_текста

и т. д. Если фон не белый, то нужно брать:
Код: Выделить всё
R = Abs(R_фона - R_текста)

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: случайный, но обязательно яркий цвет

Сообщение arthur2 » 17.01.2011 (Пн) 11:18

Mikle писал(а):Насколько понял, нужна не яркость, и не насыщенность, а контраст с цветом фона.
Ну да, видимо... правда, фон всё время белый. Но на будующее - очень даже может пригодится :)

Спасибо! Пойду поэкспрементирую. Правда, с насыщенностью и всё время белым фоном меня, вроде, тоже устраивает :)
Артур
 
   

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: случайный, но обязательно яркий цвет

Сообщение Mikle » 17.01.2011 (Пн) 11:33

Белый - это имелся ввиду RGB(255,255,255).
arthur2 писал(а):с насыщенностью и всё время белым фоном меня, вроде, тоже устраивает

Чёрный цвет - насыщенность нулевая, но с белым контрастирует идеально.

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: случайный, но обязательно яркий цвет

Сообщение arthur2 » 17.01.2011 (Пн) 15:15

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

А есть ещё и цвета, которые вполне контрастны, но какие-то не яркие (в значении "не броские"). То есть, видимо, контрастны они именно за счёт того, что тёмные.
Артур
 
   

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: случайный, но обязательно яркий цвет

Сообщение Antonariy » 17.01.2011 (Пн) 17:24

Ерундой занимаешься. Шрифт должен быть либо черный на светлом, либо белый на темном, иначе это пытка для глаз. Или, как уже предлагали, набор подходящих цветов.
Лучший способ понять что-то самому — объяснить это другому.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: случайный, но обязательно яркий цвет

Сообщение Хакер » 17.01.2011 (Пн) 17:25

Antonariy писал(а):иначе это пытка для глаз

Синий на жёлтом, красный на зелёном — пытка?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: случайный, но обязательно яркий цвет

Сообщение Antonariy » 17.01.2011 (Пн) 17:28

Это риторический вопрос?
Лучший способ понять что-то самому — объяснить это другому.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: случайный, но обязательно яркий цвет

Сообщение Хакер » 17.01.2011 (Пн) 17:37

Нет.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: случайный, но обязательно яркий цвет

Сообщение Antonariy » 17.01.2011 (Пн) 17:44

Пытка.
Лучший способ понять что-то самому — объяснить это другому.

След.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 88

    TopList