| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > TColor->радуга |
| Автор: Babandr 22.12.2007, 15:43 |
| TColor имеет диапазон цвета от черного до белого (0x00000000 до 0x00ffffff). А если в приложении требуются цвета как в природе - от красного до фиолетового? Подскажите преобразование, пожалуйста... |
| Автор: artsb 22.12.2007, 16:44 |
| Если вы имеете ввиду, как узнать, то как вариант можно воспользоваться Photoshop'ом. В Photoshop'е RGB, а в Builder'е BGR. (по-моему), поэтому выбранный на рисунке цвет будет 0x003000ff. |
| Автор: JackYF 22.12.2007, 16:46 |
тебе поможет формирование цвета в HSV, и преобразование этого дела в RGB. Погугли по HSV->RGB, я встречал готовые формулы. |
| Автор: artsb 22.12.2007, 17:50 |
| JackYF вы имели в виду HSB? |
| Автор: artsb 22.12.2007, 18:20 |
| JackYF что-то я для Билдера не нашёл алгоритмов HSB->RGB. Если не тяжело дай ссылочку. |
| Автор: Babandr 22.12.2007, 19:50 |
| задача примерно в следующем... каждой точке в неком окне соответствует число от 0 до 100 в соответствии с этим числом цвет точки должен лежать в диапазоне от красного до фиолетового (видимый спектр). Зависимость должна быть линейной - если 0, то красный , если 100 - то фиолетовый... ргб такого представления не дает - если линейно наращивать переменную типа TColor , то фигня получается... |
| Автор: artsb 22.12.2007, 20:02 |
Вы в цикле рисуете? По какому условию рисуется красный, а по какому фиолетовый? |
| Автор: JackYF 23.12.2007, 01:14 |
Да-да, верно. |