ПОӘК 042-14-1-05.1.20.43/03-2013
«18» қыркүйек 2013 ж. №1 басылым
56 беттің 46
беті
Онда бөлшектің әрбіреуі L мен тек қана бір-ақ рет қиылысады: егер сол
және оң шекаралар үшін Брезенхем алгоритмін пайдаланатын болса, онда L дің
әрбір түзуі үшін сол және оң пиксельдерді аламыз. Олардың аралықтарының
барлықтарын толтырып дөңес күпбұрыштың растрлы бұрандасын аламыз.
затравкасы бар аймақты толтыру алгоритмі
Аумақ шекарасы берілген және оның ішінде затравка нүктесі көрсетілген
деп болжайық. Одан бояу “ағып” барлық аумақты бояп тастайды.
Бояу алгоритімін стек көмегімен қарастырып көрейік.
Сызықты массивтердің үш түрі ажыратылады.
Тізім – бұл массивке қойылатын немесе алынып тасталынатын
элементтердің жиынтығы.
Кезек– осындай массивтен элемент онда қойылған тәртіпке сәйкес
алынып тасталынады.
Стек – бір жақ ұшынан ашық болып келетін элементтердің сызықты
массиві.
Затравочный пиксел стекке орналастырылады. Ары қарай, стек толып
тұрған кезде одан кезекті пиксельді бөліп алып, оны бояймыз да, көршілес
пиксельдерді таңдаймыз. Егер де олардың арасында шекараға жатпайтын
немесе қажетті түспен боялмаған пиксельдер болатын болса, онда оларды
стекке орналастырамыз. Қайтадан пиксельді бөліп алып оны бояймыз және
т.с.с.
Осындай алгоритмнің жұмысы біткеннен кейін аумақтың барлық ішкі
пиксельдері боялады да, ал стек босап қалады.
Бұл алгоритм тиімді жұмыс атқармайды, себебі бір пиксель бірнеше рет
талданады да, ал бұл кезде стек шексіз өсе береді. Өте тиімді алгоритм болып
затравкамен толтырылатын жолақты алгоритм болып табылады. Оның негізі
сканерлеуді затравкамен үйлестіру болып табылады.
Жолақтардың қарастырылуы- онда бояуға қажетті интервалдар болады.
Және осы интервалдардың астында да боялатын шекара немесе ішкі аумақ
болады. Соңғы жағдайда пиксельдер жоғарыдағы және төмендегі жолақтар
үшін затравка болып табылады. Осыны ескере отырып аумақты толтыру
облысы келесідей болады:
1. затравочный пикселді стекке орналастырамыз.
2. Стектан пиксельді бөліп алып, мүмкін болатын максимальды
интервалды шекраға дейін оңға және солға толтырамыз.
3. Ең шеткі сол және оң нүктелерді есте сақтаймыз.
4. Интервал үстіндегі және астындағы жолақтардан ішкі аумақтардағы
толтырылмаған , интервалдарға біріккен пиксельдерді табамыз да, осы әрбір
интервалдардағы ең шеткі оң пиксельді тауып – оны затравка ретінде
қарастырамыз.
Алгоритм кез-келген дұрыс аумақты тесіктерімен бірге толтырады.
Бақылау сұрақтары
|