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



Pdf көрінісі
бет5/6
Дата15.03.2017
өлшемі0,98 Mb.
#9282
1   2   3   4   5   6

r

1

 (1) = r

2

 (0)                   ( 4 ) 

    қисығы,   

1

  , 


,ден  құралған  жүйелі  болу  үшін  ортақ  жеке  қатысты 

векторлардың және қисық 

1

 және 



 жіктелетін қисықтың векторларын сәйкес 

келуін талап етеміз.  

 

Егер қисық вектор радиустар 



1

 және 


2

  

Геометриялық үздіксіздік жағдайымен жалғасуын анықтау қиын емес. 



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

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

 

56 беттің 40

 

беті 

 

 

r



2

(0)=r

1

(1), r

2

(0)=

1

r

1

(1), r

2

(0)=

1

r

1

(1)+

2

r

1

(1),             ( 7 ) 

мұндағы 


1

  >  0, 


2

 

0  –  сандық  параметр  онда  құрама  қисықтың  әрбір 



жүйелі шарты орындалады. 

m+1  нүктелеріндегі  V

0

  ,  V


1

  ,...,  V

m-1

,  V


m

  ,  жиынтығын  өздерінің  радиус-

векторымен белгіленді қарастырайық. 

Құрама  жүйені  қисықты,  бөлікті  қисықтың  көмегімен  іздестіреміз, 

шарттың бейнеленген түрінде  

r

i

 (t) =   b

j

 (t)*V

ij

,  0 

 t 

1,                                   ( 8 ) 

 

мұндағы b



j

 (t) =  C

kj

 (

1



2

 ) t, j = -2, -1, 0, 1 -              ( 9 ) 

i – таразылы функ-қ коэффициенттерден тәуелсіз.  

Бұл  таразылы  коэффициенттерді  табу  үшін    r

i

(t),  r



i+1

(t)  сәйкесу 

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

(8) есепке ала отыра жазуға болады: 

;b

j

(0)V



i+1+j

 =  b


j

(1)V


i+j

,  b


j

(0)V


i+j+1 

1



 

b

j



(1)V

i+j


, (10) 

b

j



(0)V

i+j+1


 = 

1

 



b

j

(1)V



i+j

 + 


2

 

b



j

(1)V


i+j

Барлық функ-қ коэффиценттерді табуға рұқсат етеді. 



b

j

(t), j = -2, -1, 0, 1. 



Мысалға бірінші теңдікті толығырақ жазсақ. 

b

-2



(0)V

i-1


+b

-1

(0)V



i

+b

0



(0)V

i+1


+b

1

(0)V



i+2 

=  


b

-2

(1)V



i-2

+b

-1



(1)V

i-1


+b

0

(1)V



i

+b

1



(1)V

i+1 


бірдей вектордағы коэффициенттерді теңестіре 

b

-2



(1)=0; b

-2

(0)=b



-1

(1); b


-1

(0)=b


0

(1); b


0

(0)=b


1

(1); b


1

(0)=0. 


Осындай жолмен екі өзге теңестіруден байланыс пайда болады (9), 0 және 

1 нүктелерінде бірінші және екінші туынды таразылы коэффициенттер ұғымын 

қосады. 

=2  


1

+4  


1

+4  


1

+  


2

+2>0. 


Коэффициенттерді  есептеп  оларды  (9)  қояйық  сонда  табылған  таразылы 

функцияға өрнектер болады. 

b

-2

(t) =2 



1

(1-t) / ,  

b

-1

(t) = [2  



1

 t(t -3t+3) +2  

1

(t -3t +2) +2  



1

(t -3t+2)+ 

2

(2t -3t +1)] / , 



b

0

(t) = [2  



t (3-t) + 2  

1

t(3-t )+  



2

t(3-2t)+2(1-t )]/ , 

b

1

(t) = 2t / , 



және  де  олар  барлық  конструкцияға  жарайды.Оларды  (8)  қойып,    r

i

(t) 



векторлық функция мәнін аламыз. 

Құрама қисық  V

0

 , V


m

 , шыңымен өту үшін V

0

V

1



 , V

m-1


V

m

 кесінділерінің 



бақылауын жанасса, шыққан вектор функция жиынтығына тағы  төртеуін қосу 

қажет: 


r

0

(t) = (1-2t /  )V



+ 2t V


1

/  , 


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

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

 

56 беттің 41 беті 

 

 



r

1

(t) = [b



-2

(t)+b


-1

(t)]V


0

 + b


0

(t)V


1

+b

1



(t)V

2, 


r

m

(t) = b



-2

(t)V


m-2

 +b


-1

(t)V


m-1

 + [b


0

(t)+b


1

(t)]V


m

r



m+1

(t)=2  


(1-t) V


m-1

/  + [1-2  

1

 (1-t )/  ]V



m

Соеымен ізделіп отырған құрамы қисық   



толықтай табылады.  

Суретте  көрсетілгендей   

1

  , 


2

  параметр 

таңдауы  қорытқы  қисық  формасына  әсерін 

көрсетеді. 

Қисықтары  бар  ұқсастықтар  бойынша 

тегістелген  беттерді  құрастыруға  болады. 

Мұнда Базье беті және т.б ұғымдар пайда болады. 

 

Бақылау сұрақтары 

1.

 

Инженерлік  жобалаудың  негізгі  түр-ң  классификациясын  және 



сәйкесінше компьютер графикасын келтірініз. 

2.

 



Перспективалы  өрнектеудің  матрицасын  жазыңыз.  Жиынтық  нүктесі 

негізгі  жиынтық  нүктесі  дегеніміз  ие  бейнеде  қанша  негізгі  жиынтық  нүктесі 

болу мүмкін? 

3.

 



Жазықтықта 

беттің 


жобалауының 

ерекшеліктері 

проекция 

ерекшеліксіз складқа  құрастыру. Тағы қандай ерекшеліктер болуы мүмкін? 

4.

 

Интерполяция  және  тегістеуге  анықтама  беріңіз.  Негізгі  ерекшелік 



неде? 

5.

 



Лаигранж полиман интерполяциясына анықтама беріңіз. Оның жалпы 

кемшіліктері мен құндылығын атаңыз. 

6.

 

Тегістеуші  қисық  Базье    деген  не  –  анықтама  беріп  құндылық  пен 



кемшілігін анықта. 

7.

 



Сплайн – аппроксимацияның негізгі идеясын атаңыз. Текшені сплайн 

анықтамасын беріңіз.  

8.

 

Текшені сплайн коэффициент қандай шарттармен анықталады? Қанша 



шарт болуы мүмкін? 

9.

 



Битекшелі сплайнға анықтама беріңіз. Оны графигі нені көрсетеді? 

10.


 

 Базалық  сплайнның  негізгі  қолдану  бағытын  және  түсініктемесін 

беріңіз. Қисыз Базьеден артықшылығы неде? 

11.


 

 Бета-сплайнға  анықтама  беріңіз.  Тегістеуші  қисықты  құрудағы 

олардың қолдануының ерекшеліктерін атықтаңыз.  

 

Ұсынылатын әдебиеттер 

 

Люкшин Б.А. комп. графика. – Т.: ТУСУР , 1999. – 280 с. 



 

12, 13 Дәріс 

 

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

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

 

56 беттің 42

 

беті 

 

 

Тақырып. Растрлық алгоритмдер 



 

Сұрақтар 

1

 



Негізгі ұғымдар. Кесіндіні растрлық ашу. 

2

 



Брезенхем алгоритмі. 

3

 



Тұйық облыстарды бояу. 

4

 



Көпбұрыштарды толтыру. 

5

 



Облысты толтыру алгоритмдері. 

 

Қадалмен  кеңістікте  сетка  болсын  сонымен  қатар  оның  байламдары  – 



бірегесі квадраттық ортасы. 

Егер  оларды    х  (у)  бірлікке  ерекшеленсе  нүктелер  4-көршілер  деп 

аталады. 

Егер    х  (у)  кеш  дегенде  бірге  ерекшеленсе  –  қатысты  көршілер  онда 

нүктелер 8-көршілер деп аталады. 1 нүктесіне   2..9 нүктелердің барлығы сонда 

нақтылы көрші – тағы да қатыссыз, бірақ керісінше емес.  

4-жол деп көптеген  А

1

 , А



2

 , ..., А

n

 , нүтелер болады, және оларға А



i

 , А


i+1

 

нүктелері  i=1,2,...,n-1 кезінде нақтылы көршілер болып келеді. 



Бұл тығыз байланысқан жол болып саналады. 

8-жол (әлсіз байланысқан) деп  А

1

 ,А


2

 ,...,А


, көптеген нүктелер аталады, 

оларға  А

i

 , А



i+1

 – әлсіз көршілер  i=1,2,...,n-1. 

Егер  А

1

 =А



n

 , жолы тұйықталған болып аталса. 

Егер  кез  келген  2-көптік  нүктені  тығыз  байланысқан  жолмен  қосуға 

болса, онда бұл көптік- тығызбайланысқан. 

Әлсіз  байланысқан  жол  жағдайының  мүмкіндігінде  сәйкесінше  көптік 

нүктелер типі. 

Кеңістіктегі  жай  қисық  деп  көптік  нүктелер  аталады  Оларда  екеуінен 

басқа  нүктелерінде  нақты  екі  көршілер  бар,  ал  алдынғы  екеуінде  –  бір 

көршіден. . 

Жай  тұйықталған  қисық  кеңістікте  деп  көптік  аталады,  және  оларға 

барлық нүктелерінде екі көршіден болады. 

Жай  тұйықталған  тығыз  байланысқан  қисық  кеңістікті  екі  әлсіз 

байланысқан көптікке бөледі. 

 

Көпбұрыштық  стандартты  үзіктің,дұғаның,эллипстің  генерация 



процедураларды бар және т.б    

Дегенімен Растровтық генерацияның мәселесін білу пайдалы: 

- принтер, плоттер,тышқанмен жұмыс істегенде; 

-  пиксел  атрибутының  әлдебір  шарттарға  тәуелділігі  болғанда  мысалға, 

тік немесе ішкі көпбұрыштағы пиксел жағдайында; 

-  кезекті  алгоритмнің  жұмысын  тездету  кезіндегі  стуктурасын  өзгерту 

қажеттілігінде. 

Растровтық үзіктің айналуы  - бұл үзікті бейнелейтін экрандағы көптеген 

пикселдердің кезекті инициализациялау процесі. 


ПОӘК 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-байланысты көрінісі пайда болады.  



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

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

 

56 беттің 44

 

беті 

 

 

Осындай (көбінесе, шектеусіз  k<1) 8 және 4-байланысты бұрандалардың 



алгоритмдердің жалпыланған түрі Брезенхем алгоритмі деп аталады.  

Негізінен есептің екі түрі пайда болады:  

- төбелері мен жақтаулары берілген көпбұрыштардың ішін толтыру; 

-  растрлы  бұрандамен  берілген,  жабық  контурмен  шектелген  ішкі 

аймақты толтыру. 

Белгілі болғандай, компьютерлік графикада кез-келген суретті салу үшін 

объект  көрінісі  мен  олардың  атрибуттарын  таңдауға  қажетті  пиксельдерді 

анықтап  алу  қажет.  Осылайша,  растрлы  көріністе  кез-келген  объект  –

пикселдердің  жиынтығы  болып  табылатындықтан,  олар  бос  немесе  толған, 

дөңес  немесе  ойыс  көпбұрыштар  түзеді.  Егер  де  берілген  пиксель  объект 

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

жартысы шешілді деп есептеуге болады.  



Көпбұрышқа қажетті нүктелер тесті 

Көпбұрыш  –  ол  жазықтықта  қарапайым  (өзара  қиылыспайтын),  сынық 

жабық сызықпен шектелген фигура.   

Сынық төбелерімен беріледі А



i



 ,у

i

 ), i = 1,2,...,n. 



Көршілес нүктелер i, i+1 - смежные төбелер. 

Есеп:  көпбұрыштың  растрлы  бұрандамасын  алу,  яғни  оның  ішкі 

нүктелеріне иницирлеу жүргізу.  

 Жордан таеоремасы: 

Қарапайым  жабық  тегіс  сынық  жазықтықты  байланысқан  екі 

компонентке бөледі: 

- шектелген, көпбұрыштың іші ; 

- шектелмеген сыртқы бөлік.  

Бұл  теорема  келесіде  қарастырылатын  алгоритмдердің  барлығы 

шектелген  уақыт  бойынша  жұмыс  істейтіндігін  білдіреді,  себебі  оларда  растр 

элементтерінің  соңғы  саны  қарастырылады.  Алгоритм  сыртқы  және  ішкі 

нүктелерді айыру керек.  

Көпбұрыштың қабырғаларын Е

i

 белгілейік:  [A



i

 , A


i+1

 ], i=1,2,...,n (n+1=1). 

Р

i

(х,у)  –  сыныққа  қатысты  емес  жазықтықтың  кейбір  нүктелері  болсын. 



Ол көпбұрыштың ішінде жатады ма соны анықтау керек.  

Р

i



 нүктесінен солға қараай горизонталь жартылайтүзу жүргіземіз (яғни,  Р

i

 



–нүктесі  жартылайтүзудің  оң  жақ  ұшы).  Р

i

  нүктесінен  Q  нүктесін  алшақтату 



варианттары:  

- көпбұрыш шекарасымен қиылысу болмайды, Р

i

 – сыртқы нүкте; 



- қиылысудың бүтін саны; Р

i

 - сыртқы; 



- қиылысудың бөлшек саны; Р

i

 – ішкі нүкте. 



 

Егер  ешқандай  төбелеріне  тиместен 

сынықпен  қиылысатын  болса,  онда  мұндай 

қиылысуды маңызды деп атайды. 

Ереже: 


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

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

 

56 беттің 45 беті 

 

 



- тесіктің горизантальді қабырғалармен қиылысуы есептелмейді; 

-  егер  қиылысу  нүктесі  қабырға  төбесі  болатын  болса,  онда  мұндай 

қиылысу да есептелмейді. Яғни, максимум нүктелерінде қиылысу есептелмейді 

де,  минимум  нүктелерінде  екі  рет  есептеледі,  сонымен  қоса  бүтін  сан 

бұзылмайды.  

Көпбұрыштардың толтырылуы   

Егер де жазықтықта растрдың барлық нүктесін таңдап алып иницирлесе, 

тестқа сәйкес олар ішінде болады; ақыр соңында көпбұрышты бояуға болады. 

Бірақ бұл өте ұзақ және тиімді емес. Осыған байланысты кез-келген алгоритмде 

жұмысты тездету үшін осындай және басқадай әдістер  қолданылады.  

1.  Көпбұрышты  кейбір  жақтаулары  бар,  осьтері  параллель    минимальді 

объемлющий  көпбұрышқа  орналастырып,  осы  көпбұрыш  ішіндегі  нүктелерге 

талдау асау керек.  

2. Барлық горизонтальді түзулер сынықпен көпбұрыштың ішінде немесе 

сыртында  жататын  интервалдарға  жіктеледі.  Осы  интервалдардың  ұштарын 

анықтау  үшін  былай  істейміз.  Көпбұрыштың  ішіндегі  интервалдың  орнын 

анықтау  үшін  горизантальді  түзу  L  –  ді  белгілеп  аламыз.  Осы  түзудің 

көпбұрыш  қабырғаларымен  қиылысу  нүктесін  іздейміз.  Егер  де  қабырға 

ұштары L түзуінен әр түрлі жақта жататын болса онда қиылысу бар деген сөз.  

Сонымен  қоса  жоғарыда  айтылып  өткен  ереже  де  өз  күшінде  болады;  онда 

көпбұрыш  контурымен  қысқа  қиылысу  оның  төбелерінде  дұрыс  есептелетін 

болады. 

Алынған  нүктелерді  қайтадан  нөмірлейміз  және  жұп  бойынша  солдан 

оңға  қарай  біріктіреміз  –  бұл  жұптар  бояуды  қажет  ететін  көпбұрыш  ішіндегі 

интервалдар болып табылады.  

 

Осындай 


схема 

жолдар 


бойынша 

сканерлеу  тәртібі бойынша  толтыру  схемасы  деп 

атап,  ал  алгоритмді  –  жолақ  бойынша  сканерлеу 

дейміз.  

3.  Алгоритмнің  жұмысын  тездету  үшін 

ордината  ұштарынан  қабырғаларды  өсу  тәртібі 

бойынша  реттеу  керек.  Сканерленетін  түзулерді 

жоғарыдан  төмен  қарай  орын  ауыстырған  кезде  максимальді  ординатасының 

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

тексеріледі.  Минимальді  ординаталарының  мәні  сканерлейтін  ординаталар 

мәнінен  көп  болатын  қабырғалар  тексерілу  тізімінен  мүлдем  шығарылып 

тасталынады.  

Егер  де  мәселе  дөңес  көпбұрыш  туралы  болатын  болса  онда  онда 

алгоритмді  қарапайымдатып  және  оның  тиімділігін  арттыруға  болады. 

Көпбұрыш шекараларын екі бөлшеккке – оңға және солға бөлуге болады, егер 

сканерлейтін түзулерге параллель болатын болса плюс max 2 қабырға, жоғарғы 

және төменгі  


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

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

 

56 беттің 46

 

беті 

 

 

Онда бөлшектің әрбіреуі L мен тек қана бір-ақ рет қиылысады: егер сол 



және оң шекаралар үшін Брезенхем алгоритмін пайдаланатын болса, онда  L дің 

әрбір  түзуі  үшін  сол  және  оң  пиксельдерді  аламыз.    Олардың  аралықтарының 

барлықтарын толтырып дөңес күпбұрыштың растрлы бұрандасын аламыз.  

затравкасы бар аймақты толтыру алгоритмі 

Аумақ шекарасы берілген және оның ішінде затравка нүктесі көрсетілген 

деп болжайық. Одан бояу “ағып” барлық аумақты бояп тастайды. 

Бояу алгоритімін стек көмегімен қарастырып көрейік.  

Сызықты массивтердің үш түрі ажыратылады.  

Тізім  –  бұл  массивке  қойылатын  немесе  алынып  тасталынатын 

элементтердің жиынтығы.  

Кезек–  осындай  массивтен  элемент  онда  қойылған  тәртіпке  сәйкес 

алынып тасталынады.  

Стек  –  бір  жақ  ұшынан  ашық  болып  келетін  элементтердің  сызықты 

массиві.  

Затравочный  пиксел  стекке  орналастырылады.  Ары  қарай,  стек  толып 

тұрған кезде одан кезекті пиксельді бөліп алып, оны бояймыз да, көршілес  

пиксельдерді таңдаймыз. Егер де олардың арасында шекараға жатпайтын 

немесе  қажетті  түспен  боялмаған  пиксельдер  болатын  болса,  онда  оларды 

стекке  орналастырамыз.  Қайтадан  пиксельді  бөліп  алып  оны  бояймыз  және 

т.с.с.  

Осындай  алгоритмнің  жұмысы  біткеннен  кейін  аумақтың  барлық  ішкі 

пиксельдері боялады да, ал стек босап қалады.   

Бұл алгоритм тиімді жұмыс атқармайды, себебі бір пиксель бірнеше рет 

талданады да, ал бұл кезде стек шексіз өсе береді. Өте тиімді алгоритм болып 

затравкамен  толтырылатын  жолақты  алгоритм  болып  табылады.  Оның  негізі 

сканерлеуді затравкамен үйлестіру болып табылады.  

Жолақтардың  қарастырылуы-  онда  бояуға  қажетті  интервалдар  болады. 

Және  осы  интервалдардың  астында  да  боялатын  шекара  немесе  ішкі  аумақ 

болады.  Соңғы  жағдайда  пиксельдер  жоғарыдағы  және  төмендегі  жолақтар 

үшін  затравка  болып  табылады.  Осыны  ескере  отырып  аумақты  толтыру 

облысы келесідей болады: 

1. затравочный пикселді стекке орналастырамыз. 

2.  Стектан  пиксельді  бөліп  алып,  мүмкін  болатын  максимальды 

интервалды шекраға дейін оңға және солға толтырамыз.  

3. Ең шеткі сол және оң нүктелерді есте сақтаймыз.  

4.  Интервал  үстіндегі  және  астындағы  жолақтардан  ішкі  аумақтардағы 

толтырылмаған  ,  интервалдарға  біріккен  пиксельдерді  табамыз  да,  осы  әрбір 

интервалдардағы  ең  шеткі  оң  пиксельді  тауып  –  оны  затравка  ретінде 

қарастырамыз.  

Алгоритм кез-келген дұрыс аумақты тесіктерімен бірге толтырады.  

 

Бақылау сұрақтары  



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

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

 


Достарыңызбен бөлісу:
1   2   3   4   5   6




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

    Басты бет