Вниз
Скачать: CL | DM;

Цвет точек сетки   Найти похожие ветки 

← →
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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.027 c
15-1164090702
Cerberus
2006-11-21 09:31
2006.12.10
Где скачать учебники


1-1161889905
SkySpeed
2006-10-26 23:11
2006.12.10
Как можно узнать какой объём файла подкачки занимает файл/прога?


2-1164211676
lobach
2006-11-22 19:07
2006.12.10
Как очистить ValueListEditor?


2-1164396380
Kostafey
2006-11-24 22:26
2006.12.10
Простой вопрос по Object Pascal.


3-1159778962
Dima L
2006-10-02 12:49
2006.12.10
Access и AdoTable




   Наверх