«техникалық физиканың машиналық графика элементтері» ПӘні бойынша



Pdf көрінісі
бет46/62
Дата15.01.2022
өлшемі0,98 Mb.
#111954
1   ...   42   43   44   45   46   47   48   49   ...   62
Байланысты:
9282 (1)

ПОӘК 042-14-1-05.1.20.43/03-2013 

«18» қыркүйек 2013 ж. №1 басылым 

 

56 беттің 43 беті 

 

 



Егер растровтық класс бейнесін жай және растровтық етік шектесек, онда 

- 8- және 4- тік байланысты екі ғана бейне пайда болады. 

"Жай" тапсырманың шешімін қарастырайық. 

Аралық  пикселдерін  (растр  нүктелері)  таңдау  үшін,  идиалды  үзіктен 

алшақтаған  мүмкін  мысалы,  осы  үзікпен  жалғасқан  кеңістікті  барлық  растр 

нүктелерімен инициализация жасау. 

Кезекті нүктелердің генерациялы алгоритмін ұсынуға болады. 

Егер М


1

1



1

), М



2

2



2

) – үзік шегі болса онда оның теңдеуі: 



 

Және одан әрі  0

Онда  растрлы  бұранданы  (бұнда  және  осыдан  кейінгі  жағдайларда 

алгоритмдерді жазу үшін псевдоалгол немесе оқу алголы деп аталатын түсінік 

қолданылады) генерациялау процедурасы келесідей түрге ие:  

Dx := 1; Dy := abs((y2-y1)/(x2-x1)); 

X := x1; y := y1; L := x2-x1; 

for i := 0 to L-1 do begin 

PutPixel(x,Round(y)); 

X := x+Dx; y := y+Dy; end. 

Бұл  алгоритм  қарапайым:  тесікте  кезекті  нүктені  алып  оған  жақын 

пикселдерді құрамыз.   

Условие  k<1  шарты  бұранданың  бір  де  бір  нүктесін  қалдырмай  ратрлы 

кескінін  тұрғызу  үшін  қажетті:    х  бойынша  Dx=1қадамдаймыз,  y  бойынша 

аздап.  Егер  де  k>1,  онда  осы  алгоритмда    x,y  айнымалыларының  орнын 

ауыстыру қажет.   

Жазылған алгоритмде нүктенің толықмәнді абсциссасы әрбір қадамда бір 

бірлікке өзгереді, ал толықмәнді ординатаның мәні Dy өсу аралығы ординат осі 

бойынша көршілес деңгейдің 0.5 аймағына сәйкес келгенде ғана өзгереді. Осы 

бақылауларға сәйкес алгоритмді формасы бойынша негізгі схемасын өзгертпей 

ақ өзгертуге болады: 

х := x1; y := y1; n := x2-x1; m:= y2-y1; d := m/n; e := 0; 

for i := 1 to n do begin  

x := x+1; e := e + d; 

{егер  де  ординат  осінің  ауытқушылығы  берілген  мәннен  ½  көп  болатын 

болса,  онда  у-ті  1-ге  арттырып,  у-тің  жаңа  мәні  бойынша  е-нің  мәнін  түзету 

керек} 

if e > 0.5 then begin y := y+1; e := e - 1; end; 

PutPixel(x,y); 

end; 


Осы  жағдайда  келесі  нүктеде  ауысу  көршілес  8  клетканың  біреуінде 

болатындықтан тесіктің 8-байланысты көрінісі пайда болады.  






Достарыңызбен бөлісу:
1   ...   42   43   44   45   46   47   48   49   ...   62




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет