Форум: "Основная";
Текущий архив: 2006.12.10;
Скачать: [xml.tar.bz2];
ВнизЦвет точек сетки Найти похожие ветки
← →
StriderMan © (2006-10-27 12:53) [0]Делаю визуальный редактор компонентов. Необходимо рисовать сетку из точек. Рисую таким кодом:
Canvas.Pen.Mode := pmNotXor;
for x:= 0 to xe do
for y := 0 to ye do
Canvas.Pixels[x * GridX, y * GridY] := clBlack;
Все было бы хорошо, но при цвете
RGB: (128, 128, 128) точки становятся невидимыми. Как вычислить цвет точек, чтобы его было видно всегда?
← →
RWolf © (2006-10-27 13:09) [1]Если фон светлый, ставить чёрную точку. Если тёмный - белую.
← →
StriderMan © (2006-10-27 13:10) [2]
> RWolf © (27.10.06 13:09) [1]
странный критерий "светлый" и "темный". Как определить? А если Серый?
← →
RWolf © (2006-10-27 13:17) [3]серый - как угодно, пойдёт и чёрная, и белая.
критерий однозначный, яркость цвета вычисляется по стандартной формуле Y = 0.299R + 0.587G + 0.114B.
← →
StriderMan © (2006-10-27 13:44) [4]
> RWolf
Сделал, работает, но ей-богу ИМХО не изящное решение :)
Но по крайней мере их всегда видно, спасибо
← →
Mirage (2006-10-27 13:51) [5]RGB->HSL->RGB?
← →
StriderMan © (2006-10-27 14:29) [6]
> Mirage (27.10.06 13:51) [5]
> RGB->HSL->RGB?
поподробнее
← →
Mirage (2006-10-27 14:41) [7]>[6] StriderMan(c) 27-Oct-2006, 14:29
>поподробнее
RGB->HSL. выясняешь яркость (для того и преобразование). меняешь. HSL->RGB.
это не единственный вариант, но вполне рабочий. вообще, с HSL можно много интересного сделать. код преобразования раскидан по всему интернету. как коровьи лепёшки. %-)
← →
Pavia © (2006-10-27 14:53) [8]Canvas.Pen.Mode := pmNotXor; не действует на Pixels, нужно делать ручками
canvas.Pixels[10,10]:=not (canvas.Pixels[10,10] xor clBlack) and $FFFFFF;
← →
Mirage (2006-10-27 15:02) [9]>[8] Pavia(c) 27-Oct-2006, 14:53
$808080 xor $FFFFFF=$7F7F7F. ты думаешь, эти два цвета визуально сильно отличаются?
← →
StriderMan © (2006-10-27 15:09) [10]
> Pavia © (27.10.06 14:53) [8]
> Canvas.Pen.Mode := pmNotXor; не действует на Pixels, нужно
> делать ручками
еще как действует
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.12.10;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.047 c