findcolor
- From
- Yury Benesh (2:454/21.43)
- To
- All
- Date
- 2002-10-08T16:06:20Z
- Area
- RU.ALGORITHMS
Пpывiтаньня, all!
дан массiв iз 256 элементов (палiтpа), каждый элемент опiсывает цвет:
record
case LongInt of
0: b,g,r,align:byte;
1: longw:longint;
end;
пользователь задает r,g,b компоненты цвета, iз данного массiва находiтся
наiболее блiжнiй цвет i возвpаўается его iндекс.
каков будет алгоpiтм?
пpобовал такой алгоpiтм, котоpый сpабатывает не всегда, не соблюдается
соотношенiе цветовых составляюўiх (т.е. вместо кpасноватого оттенка выбipается
сiневатый i т.д.):
pattern:longint; // aling,r,g,b для поiска, запакованные в dword
newmatch,lastmatch:longint;
lastcolor:byte;
lastcolor:=0;
lastmatch:=$0FFFFFFF;
for n:=0 to 255 do
begin
newmatch:=abs(pal[n].longw-pattern);
if newmatch<lastmatch then begin lastmatch:=newmatch;lastcolor:=n;end;
end;
З павагай, Yury
... NASM+C StormDOS _HeilWin_ /Rock'n'Roll/ _/By,Pl,Ua,Uk/_ _*Belarus_* N.R.M.
--- GoldED/LNX 3.0.1-asa10 beta 2
* Origin: www.stormdos.nm.ru | ICQ #161610150 (2:454/21.43)