Computer Graphics
Computer Graphics
By
DONALD HEARN
M.PAULINE BAKER
ﺗﺎﺑﺴﺘﺎن 1386
اﻳﻦ ﺟﺰوه ﺗﺮﻛﻴﺒﻲ از ﺗﺮﺟﻤﻪ ﻛﺘﺎب Computer graphicsو ﺟﺰوه ﻣﻬﻨﺪس اﻛﺒﺮي ﻣﻴﺒﺎﺷﺪ.
2 ﮔﺮاﻓﻴﻚ ﻛﺎﻣﭙﻴﻮﺗﺮي :ﺗﺮﺳﻴﻢ اﺷﻜﺎل ﭘﺎﻳﻪ ﻫﻨﺪﺳﻲ
ﻫﺮ ﺗﺼﻮﻳﺮ را ﻣﻴﺘﻮان ﺑﻪ روﺷﻬﺎي ﮔﻮﻧﺎﮔﻮن ﺗﻮﺻﻴﻒ ﻛﺮد .ﺑﺮاي ﻣﺜﺎل ﻣﻴﺘﻮان ﻫﺮ ﺗﺼﻮﻳﺮ را ﺑﻪ ﺻﻮرت ﻣﺠﻤﻮﻋﻪ اي از اﺷﻴﺎء در
ﻧﻈﺮ ﮔﺮﻓﺖ و ﺳﭙﺲ اﻳﻦ اﺷﻴﺎء را ﺑﺼﻮرت اﺷﻜﺎل اوﻟﻴﻪ ﻣﺎﻧﻨﺪ ﻧﻘﻄﻪ ،ﺧﻂ ،داﻳﺮه و ...ﻣﺪل ﻛﺮد و در ﻧﻬﺎﻳﺖ اﻳﻦ اﺷﻜﺎل اوﻟﻴﻪ را
ﺗﻮﺳﻂ ﻣﺠﻤﻮﻋﻪ اي از ﭘﻴﻜﺴﻞ ﻫﺎي ﻧﻮراﻧﻲ ﻧﻤﺎﻳﺶ داد.
رﺳﻢ ﻧﻘﻄﻪ:
ﺑﺮاي رﺳﻢ ﻧﻘﻄﻪ ﺗﻨﻬﺎ ﺑﺎﻳﺪ ﺑﻪ ﻃﺮﻳﻘﻲ ﻣﺨﺘﺼﺎت ﻧﻘﻄﻪ ﻣﻮرد ﻧﻈﺮ را ﺑﻪ روﻳﻪ اي ﻣﻨﺎﺳﺐ ﺑﺮاي دﺳﺘﮕﺎه ﺧﺮوﺟﻲ ﺑﺒﺮﻳﻢ .در
ﺳﻴﺴﺘﻢ ﻫﺎي راﺳﺘﺮ ﻣﻜﺎن ﻣﺘﻨﺎﻇﺮ ﺑﺎ ﻧﻘﻄﻪ ،در ﻓﺮﻳﻢ ﺑﺎﻓﺮ ﻣﻘﺪاردﻫﻲ ﻣﻴﺸﻮد و ﺳﭙﺲ ﻫﻨﮕﺎم ﺗﺎﺑﻴﺪن اﻟﻜﺘﺮون ﻣﻜﺎن ﻣﻮرد ﻧﻈﺮ
روﺷﻦ ﻣﻴﺸﻮد.
ﻣﻌﻤﻮﻻً ﺑﺮاي ﻣﻘﺪاردﻫﻲ ﻛﺮدن ﻓﺮﻳﻢ ﺑﺎﻓﺮ )ﺗﺮﺳﻴﻢ ﻧﻘﻄﻪ( از ﺗﺎﺑﻊ ﺳﻄﺢ ﭘﺎﻳﻴﻦ زﻳﺮ اﺳﺘﻔﺎده ﻣﻴﺸﻮد:
)setpixel (x , y, color
رﺳﻢ ﺧﻂ:
اﻟﮕﻮرﻳﺘﻢ : DDA
ﻳﻜﻲ از اﻟﮕﻮرﻳﺘﻢ ﻫﺎي ﺗﺮﺳﻴﻢ ﺧﻂ اﻟﮕﻮرﻳﺘﻢ DDAاﺳﺖ ﻛﻪ ﺑﺮ ﭘﺎﻳﻪ ﻣﻌﺎدﻟﻪ ﺷﻴﺐ ﺧﻂ ﻋﻤﻞ ﻣﻴﻜﻨﺪ .ﺑﺴﺘﻪ ﺑﻪ ﻣﻘﺪار ﺷﻴﺐ
ﺧﻂ ﻳﻜﻲ از ﻓﺮﻣﻮل ﻫﺎي زﻳﺮ را اﺳﺘﻔﺎده ﺧﻮاﻫﻴﻢ ﻛﺮد.
⎧ ∆x =1
y
⎪ k +1 = y k + m ∆ x ⇒ yk +1 = yk + m )(1
⎨ ⇒ ∆y = m∆x 1 ∆y =1
1
⎪ xk +1 = xk + ∆y ⇒ xk +1 = xk + )(2
⎩ m m
را ﻳﻚ واﺣﺪ اﻟﻒ ( در ﺻﻮرﺗﻴﻜﻪ ﺷﻴﺐ ﺧﻂ ﻣﻘﺪار ﻣﺜﺒﺖ و ﻛﻤﺘﺮ از ﻳﻚ ﺑﺎﺷﺪ در اﻳﻦ ﺻﻮرت در ﻫﺮ ﻣﺮﺣﻠﻪ ﻣﻘﺪار ∆x
اﻓﺰاﻳﺶ ﻣﻴﺪﻫﻴﻢ و ﺳﭙﺲ ﻣﻘﺪار yرا از ﻓﺮﻣﻮل 1ﻣﺤﺎﺳﺒﻪ ﻣﻴﻜﻨﻴﻢ.
ب ( در ﺻﻮرﺗﻴﻜﻪ ﺷﻴﺐ ﺧﻂ ﻣﻘﺪار ﻣﺜﺒﺖ و ﺑﻴﺸﺘﺮ از ﻳﻚ ﺑﺎﺷﺪ در اﻳﻦ ﺻﻮرت در ﻫﺮ ﻣﺮﺣﻠﻪ ﻣﻘﺪار ∆yرا ﻳﻚ واﺣﺪ
اﻓﺰاﻳﺶ ﻣﻴﺪﻫﻴﻢ و ﺳﭙﺲ ﻣﻘﺪار xرا از ﻓﺮﻣﻮل 2ﻣﺤﺎﺳﺒﻪ ﻣﻴﻜﻨﻴﻢ.
از آﻧﺠﺎ ﻛﻪ ﻣﻘﺪار mﻣﻴﺘﻮاﻧﺪ ﻫﺮ ﻋﺪد ﺣﻘﻴﻘﻲ ﺑﺎﺷﺪ ﺑﻨﺎﺑﺮاﻳﻦ ﻧﻴﺎز ﺑﻪ ﮔﺮد ﻛﺮدن ﻋﺪد ﺣﺎﺻﻞ دارﻳﻢ .اﻟﮕﻮرﻳﺘﻢ DDAاﻟﮕﻮرﻳﺘﻢ
ﺳﺮﻳﻌﻲ ﺑﺮاي ﭘﻴﺪا ﻛﺮدن ﭘﻴﻜﺴﻞ ﻫﺎ اﺳﺖ ﻛﻪ ﻣﺴﺘﻘﻴﻤﺎً از ﻣﻌﺎدﻟﻪ ﺧﻂ اﺳﺘﻔﺎده ﻣﻴﻜﻨﺪ .اﻣﺎ ﺑﻪ دﻟﻴﻞ ﻋﻤﻠﻴﺎت ﭘﻴﺎﭘﻲ در
ﮔﺮدﻛﺮدن ﻣﻴﺘﻮاﻧﺪ ﻣﻨﺠﺮ ﺑﻪ ﺧﻄﺎﻫﺎي ﭼﺸﻤﮕﻴﺮي در ﺧﻄﻮط ﻃﻮﻻﻧﻲ ﺷﻮد .ﻫﻤﭽﻨﻴﻦ ﻋﻤﻠﻴﺎت ﮔﺮد ﻛﺮدن و ﻛﺎر ﺑﺎ اﻋﺪاد
اﻋﺸﺎري ﺑﺴﻴﺎر وﻗﺖ ﮔﻴﺮ اﺳﺖ.
روﻳﻪ زﻳﺮ ،ﻧﺤﻮه اﺟﺮاي اﻳﻦ اﻟﮕﻮرﻳﺘﻢ را ﻧﺸﺎن ﻣﻴﺪﻫﺪ:
)void dda_line(const int x_1,const int y_1,const int x_2,const int y_2
{
;) (int color=getcolor
;int x1=x_1
;int y1=y_1
;int x2=x_2
;int y2=y_2
)if(x_1>x_2
{
;x1=x_2
4 ﮔﺮاﻓﻴﻚ ﻛﺎﻣﭙﻴﻮﺗﺮي :ﺗﺮﺳﻴﻢ اﺷﻜﺎل ﭘﺎﻳﻪ ﻫﻨﺪﺳﻲ
;y1=y_2
;x2=x_1
;y2=y_1
}
;)float dx=(x2-x1
;)float dy=(y2-y1
;)int steps=abs(dy
))if(abs(dx)>abs(dy
;)steps=abs(dx
;)float x_inc=(dx/(float)steps
;)float y_inc=(dy/(float)steps
;float x=x1
;float y=y1
;)putpixel(x,y,color
)for(int count=1;count<=steps;count++
{
;x+=x_inc
;y+=y_inc
;)putpixel((int)(x+0.5),(int)(y+0.5),color
}
}
اﻟﮕﻮرﻳﺘﻢ : Bresenham
اﻳﻦ اﻟﮕﻮرﻳﺘﻢ ﻳﻜﻲ از اﻟﮕﻮرﻳﺘﻢ ﻫﺎي ﺳﺮﻳﻊ و ﻣﻨﺎﺳﺐ ﺑﺮاي رﺳﻢ ﺧﻂ اﺳﺖ ﻛﻪ ﺗﻮﺳﻂ ﺑﺮﺳﻨﻬﺎم اﻳﺠﺎد ﺷﺪ .و ﺗﻨﻬﺎ از
ﻣﺤﺎﺳﺒﺎت ﺑﺮ روي اﻋﺪاد ﺻﺤﻴﺢ اﺳﺘﻔﺎده ﻣﻴﻜﻨﺪ ﺿﻤﻨﺎً ﻣﻴﺘﻮاﻧﺪ ﺑﺎ ﻛﻤﻲ ﺗﻐﻴﻴﺮ ﺑﺮاي رﺳﻢ داﻳﺮه و ﺳﺎﻳﺮ ﺧﻄﻮط ﻣﻨﺤﻨﻲ
اﺳﺘﻔﺎده ﺷﻮد.
در ﺷﻜﻞ روﺑﺮو ﺑﺨﺸﻲ از ﻳﻚ ﺧﻂ ﻣﺴﺘﻘﻴﻢ ﻧﺸﺎن داده ﺷﺪه اﺳﺖ .
ﭘﺲ از رﺳﻢ ﻧﻘﻄﻪ ) (10,11در ﻣﺮﺣﻠﻪ ﺑﻌﺪ ﻣﺎ ﺑﺎﻳﺪ ﺗﺼﻤﻴﻢ ﺑﮕﻴﺮﻳﻢ ﻛﻪ ﻛﺪام ﻳﻚ از ﻧﻘﺎط
) (11,11و ﻳﺎ ) (11,12اﻧﺘﺨﺎب ﺷﻮد .اﻳﻦ ﺳﺆال ﺗﻮﺳﻂ اﻟﮕﻮرﻳﺘﻢ ﺑﺮﺳﻨﻬﺎم ،و ﺑﻪ ﻛﻤﻚ
ﻋﻼﻣﺖ ﻳﻚ ﭘﺎراﻣﺘﺮ ﺗﺼﻤﻴﻢ ﮔﻴﺮي ﻛﻪ ﻓﺎﺻﻠﻪ ﺑﻴﻦ ﻫﺮ ﻳﻚ از ﭘﻴﻜﺴﻞ ﻫﺎ و ﺧﻂ واﻗﻌﻲ را
ﻧﺸﺎن ﻣﻴﺪﻫﺪ ،ﭘﺎﺳﺦ داده ﻣﻴﺸﻮد .ﺗﻨﻬﺎ ﻣﺸﻜﻞ اﻳﻦ اﻟﮕﻮرﻳﺘﻢ آن اﺳﺖ ﻛﻪ ﺑﻪ ﺷﻴﺐ ﺧﻂ
ﻣﻮرد ﻧﻈﺮ ﺑﺴﺘﮕﻲ دارد.
ﺑﺮاي ﻧﺸﺎن دادن روش اﻟﮕﻮرﻳﺘﻢ ،اﺑﺘﺪا رﺳﻢ ﺧﻄﻮط ﺑﺎ ﺷﻴﺐ ﻣﺜﺒﺖ و ﻛﻤﺘﺮ از 1را ﺑﺮرﺳﻲ
ﻣﻴﻜﻨﻴﻢ .ﻣﺎ در ﻫﺮ ﻣﺮﺣﻠﻪ ،ﻣﺆﻟﻔﻪ xرا ﻳﻚ واﺣﺪ اﻓﺰاﻳﺶ ﻣﻴﺪﻫﻴﻢ ،ﺳﭙﺲ ﻣﺆﻟﻔﻪ yرا
ﻣﺤﺎﺳﺒﻪ ﻣﻴﻜﻨﻴﻢ .ﺷﻜﻞ روﺑﺮو اﻟﮕﻮرﻳﺘﻢ را در ﻣﺮﺣﻠﻪ kام ﻧﺸﺎن ﻣﻴﺪﻫﺪ .ﻓﺮض ﻛﻨﻴﺪ ﻣﺎ
ﺗﺸﺨﻴﺺ داده اﻳﻢ ﻛﻪ ﭘﻴﻜﺴﻞ ) ( xk , ykرﺳﻢ ﺷﻮد .در ﻣﺮﺣﻠﻪ ﺑﻌﺪ ﺑﺎﻳﺪ ﺗﺼﻤﻴﻢ ﺑﮕﻴﺮﻳﻢ
ﻛﻪ ﻛﺪام ﭘﻴﻜﺴﻞ در ﺳﺘﻮن xk +1رﺳﻢ ﺷﻮد .اﻧﺘﺨﺎب ﻫﺎي ﻣﺎ ﭘﻴﻜﺴﻞ ﻫﺎي ) ( xk +1 , ykو
) ( xk +1 , yk +1ﻫﺴﺘﻨﺪ.
5 ﮔﺮاﻓﻴﻚ ﻛﺎﻣﭙﻴﻮﺗﺮي :ﺗﺮﺳﻴﻢ اﺷﻜﺎل ﭘﺎﻳﻪ ﻫﻨﺪﺳﻲ
اﺑﺘﺪا ﻣﻘﺪار واﻗﻌﻲ yدر ﺳﺘﻮن xk +1را از راﺑﻄﻪ زﻳﺮ ﺑﺪﺳﺖ ﻣﻲ آورﻳﻢ و ﺳﭙﺲ ﻓﺎﺻﻠﻪ
ﺑﻴﻦ ﻫﺮ ﻳﻚ از ﭘﻴﻜﺴﻠﻬﺎ را ﺗﺎ اﻳﻦ ﻣﻘﺪار ﻣﺤﺎﺳﺒﻪ ﻣﻴﻜﻨﻴﻢ) .ﺷﻜﻞ روﺑﺮو(
y = m( xk + 1) + b
d1 = y − yk = m( xk + 1) + b − yk
d 2 = yk + 1 − y = yk + 1 − m( xk + 1) + b
)*( d1 − d 2 = 2m( xk + 1) − 2 yk + 2b − 1
ﭘﺎراﻣﺘﺮ ﺗﺼﻤﻴﻢ ﮔﻴﺮي pkدر ﻫﺮ ﻣﺮﺣﻠﻪ از راﺑﻄﻪ )*( ﺑﺪﺳﺖ ﻣﻲ آﻳﺪ .ﺑﺎ ﺟﺎﻳﮕﺰﻳﻨﻲ
m = ∆yدر راﺑﻄﻪ ،ﭘﺎراﻣﺘﺮ ﺗﺼﻤﻴﻢ ﮔﻴﺮي ﺑﺼﻮرت زﻳﺮ ﺑﺪﺳﺖ ﻣﻲ آﻳﺪ.
∆x
pk = ∆x(d1 − d 2 ) = 2∆y.xk − 2∆x. yk + c
ﻛﻪ در آن cﺑﺮاﺑﺮ اﺳﺖ ﺑﺎ ) 2∆y + ∆x (2b − 1و ﻣﻘﺪار ﺛﺎﺑﺘﻲ اﺳﺖ ﻛﻪ ﻣﻴﺘﻮان آن را در ﻣﻌﺎدﻻت ﺑﺎزﮔﺸﺘﻲ ﻧﺎدﻳﺪه ﮔﺮﻓﺖ.
ﺣﺎل ﻣﻴﺘﻮان ﺑﻴﺎن ﻛﺮد:
-1اﮔﺮ pkداراي ﻣﻘﺪار ﻣﻨﻔﻲ ﺑﻮد آﻧﮕﺎه ﭘﻴﻜﺴﻞ ﻗﺮار ﮔﺮﻓﺘﻪ در ykﺑﻪ ﺧﻂ ﻧﺰدﻳﻜﺘﺮ اﺳﺖ و ﭘﻴﻜﺴﻞ ﭘﺎﻳﻴﻨﻲ اﻧﺘﺨﺎب ﺧﻮاﻫﺪ
ﺷﺪ.
-2اﮔﺮ pkداراي ﻣﻘﺪار ﻣﺜﺒﺖ ﺑﻮد آﻧﮕﺎه ﭘﻴﻜﺴﻞ ﻗﺮار ﮔﺮﻓﺘﻪ در yk + 1ﺑﻪ ﺧﻂ ﻧﺰدﻳﻜﺘﺮ اﺳﺖ و ﭘﻴﻜﺴﻞ ﺑﺎﻻﻳﻲ
اﻧﺘﺨﺎب ﺧﻮاﻫﺪ ﺷﺪ.
ﺣﺎل در ﻣﺮﺣﻠﻪ ﺑﻌﺪ ،در ﺳﺘﻮن xk + 1دارﻳﻢ :
pk +1 = 2∆y.xk +1 − 2∆x. yk +1 + c
ﻣﻘﺪار دو ﭘﺎراﻣﺘﺮ را از ﻫﻢ ﻛﻢ ﻣﻴﻜﻨﻴﻢ :
) pk +1 − pk = 2∆y.( xk +1 − xk ) − 2∆x.( yk +1 − yk
ﻛﻪ در آن ) ( yk +1 − ykﻣﻴﺘﻮاﻧﺪ ﻣﻘﺪار 0ﻳﺎ 1داﺷﺘﻪ ﺑﺎﺷﺪ .اﻳﻦ راﺑﻄﻪ ﺑﺎزﮔﺸﺘﻲ ﺑﺎﻳﺪ در ﻫﺮ ﻣﺮﺣﻠﻪ ﻣﺤﺎﺳﺒﻪ ﺷﻮد .ﻣﻘﺪار
اوﻟﻴﻪ راﺑﻄﻪ ﺑﺎزﮔﺸﺘﻲ را ﻧﻴﺰ از راﺑﻄﻪ pkﺑﺼﻮرت زﻳﺮ ﺑﺪﺳﺖ ﻣﻲ آورﻳﻢ.
p0 = 2∆y − ∆x
روﻳﻪ زﻳﺮ ﭘﻴﺎده ﺳﺎزي اﻳﻦ اﻟﮕﻮرﻳﺘﻢ ﺑﻪ زﺑﺎن C++را ﻧﺸﺎن ﻣﻴﺪﻫﺪ:
)void bresenham_line(const int x_1,const int y_1,const int x_2,const int y_2
{
;) (int color=getcolor
;int x1=x_1
;int y1=y_1
;int x2=x_2
;int y2=y_2
)if(x_1>x_2
{
;x1=x_2
;y1=y_2
;x2=x_1
;y2=y_1
}
6 ﮔﺮاﻓﻴﻚ ﻛﺎﻣﭙﻴﻮﺗﺮي :ﺗﺮﺳﻴﻢ اﺷﻜﺎل ﭘﺎﻳﻪ ﻫﻨﺪﺳﻲ
;)int dx=abs(x2-x1
;)int dy=abs(y2-y1
;)int two_dy=(2*dy
;))int two_dy_dx=(2*(dy-dx
;)int p=((2*dy)-dx
;int x=x1
;int y=y1
;)putpixel(x,y,color
)while(x<x2
{
;x++
)if(p<0
;p+=two_dy
else
{
;y--
;p+=two_dy_dx
}
;)putpixel(x,y,color
}
}
ﻳﻚ روش ﺑﺮاي ﺣﺬف ﻓﻀﺎﻫﺎي ﺧﺎﻟﻲ ﻋﻮض ﻛﺮدن ﺟﺎي ﻣﺆﻟﻔﻪ ﻫﺎي x, yدر ﺟﺎﻳﻲ اﺳﺖ ﻛﻪ ﺷﻴﺐ ﺧﻂ ﺑﻴﺸﺘﺮ از ﻳﻚ ﻳﺎ
ﻛﻤﺘﺮ از -1ﺑﺎﺷﺪ .ﻛﻪ اﻳﻦ روش ﻧﻴﺰ ،ﻧﻴﺎز ﺑﻪ ﻣﺤﺎﺳﺒﺎت ﻓﺮاوان دارد .روش دﻳﮕﺮ ﺑﺮاي ﺣﺬف ﻓﻀﺎﻫﺎي ﺑﻴﻦ ﭘﻴﻜﺴﻠﻲ اﺳﺘﻔﺎده
از روش زاوﻳﻪ اي و رﺳﻢ داﻳﺮه در ﻣﺨﺘﺼﺎت ﻗﻄﺒﻲ ﺑﺮ ﭘﺎﻳﻪ rو θﻣﻲ ﺑﺎﺷﺪ .ﻣﻌﻤﻮﻻً ﻣﻘﺪار θرا در ﻫﺮ ﻣﺮﺣﻠﻪ ﺑﻪ ﻣﻘﺪار
1
اﻓﺰاﻳﺶ ﻣﻴﺪﻫﻨﺪ ﺗﺎ داﻳﺮه رﺳﻢ ﺷﻮد.
r
⎧ x = xc + r cos θ
⎨
⎩ y = yc + r sin θ
7 ﮔﺮاﻓﻴﻚ ﻛﺎﻣﭙﻴﻮﺗﺮي :ﺗﺮﺳﻴﻢ اﺷﻜﺎل ﭘﺎﻳﻪ ﻫﻨﺪﺳﻲ
1
داﻳﺮه را ﻧﻜﺘﻪ ﻣﻬﻢ اﻳﻨﺠﺎﺳﺖ ﻛﻪ ﻣﺎ ﻣﻴﺘﻮاﻧﻴﻢ ﻣﻴﺰان ﻣﺤﺎﺳﺒﺎت را ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺗﻘﺎرن داﻳﺮه ﻛﺎﻫﺶ دﻫﻴﻢ .ﻣﺎ ﻣﻴﺘﻮاﻧﻴﻢ ﺗﻨﻬﺎ
8
رﺳﻢ ﻛﺮده و ﺳﭙﺲ ﻛﻞ داﻳﺮه را ﺑﺎ ﺗﻘﺎرن از ﻣﺤﻮرﻫﺎي x, y , x = yﺑﺪﺳﺖ
آورﻳﻢ و ﺗﻨﻬﺎ ﺑﺎﻳﺪ داﻳﺮه را ﺑﺮاي 45oﻣﺤﺎﺳﺒﻪ ﻛﻨﻴﻢ.
ﻣﺎ ﺗﻨﻬﺎ داﻳﺮه را از ﻧﻘﻄﻪ x = 0ﺗﺎ x = yرﺳﻢ ﻛﺮده و ﺳﭙﺲ آﻧﺮا ﺑﺎ ﺗﻘﺎرن
داﻳﺮه ﻛﺎﻣﻞ ﻣﻴﻜﻨﻴﻢ .اﻣﺎ ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﮔﻔﺘﻪ ﺷﺪ ﻣﻌﺎدﻻت دﻛﺎرﺗﻲ و ﻗﻄﺒﻲ روش
ﺧﻮﺑﻲ ﺑﺮاي رﺳﻢ داﻳﺮه ﻧﻴﺴﺘﻨﺪ .زﻳﺮا روش دﻛﺎرﺗﻲ ﻧﻴﺎز ﺑﻪ ﻣﺤﺎﺳﺒﻪ ﺿﺮب و
رادﻳﻜﺎل و روش ﻗﻄﺒﻲ ﻧﻴﺎز ﺑﻪ ﻣﺤﺎﺳﺒﺎت ﻣﺜﻠﺜﺎﺗﻲ دارد .روش ﺑﻬﺘﺮ اﻟﮕﻮرﻳﺘﻢ
MidPointاﺳﺖ .
اﺑﺘﺪا ﭘﻴﺎده ﺳﺎزي اﻟﮕﻮرﻳﺘﻢ رﺳﻢ داﻳﺮه ﺑﺎ زاوﻳﻪ را در زﺑﺎن C++ﻧﺸﺎن ﻣﻴﺪﻫﻴﻢ و ﺳﭙﺲ ﺑﻪ اﻟﮕﻮرﻳﺘﻢ ﻧﻘﻄﻪ ﻣﻴﺎﻧﻲ ﺧﻮاﻫﻴﻢ
ﭘﺮداﺧﺖ .
اﻟﮕﻮرﻳﺘﻢ زاوﻳﻪ ﺑﺮاي رﺳﻢ داﻳﺮه:
)void trigonometric_circle(const int h,const int k,const int r
{
;) (int color=getcolor
;float x=0
;float y=r
;float angle=0
;float range=M_PI_4
do
{
;)putpixel((int)(h+x+0.5),(int)(k+y+0.5),color
;)putpixel((int)(h+y+0.5),(int)(k+x+0.5),color
;)putpixel((int)(h+y+0.5),(int)(k-x+0.5),color
;)putpixel((int)(h+x+0.5),(int)(k-y+0.5),color
;)putpixel((int)(h-x+0.5),(int)(k-y+0.5),color
;)putpixel((int)(h-y+0.5),(int)(k-x+0.5),color
;)putpixel((int)(h-y+0.5),(int)(k+x+0.5),color
;)putpixel((int)(h-x+0.5),(int)(k+y+0.5),color
;angle+=0.001
;))x=(r*cos(angle
;))y=(r*sin(angle
}
;)while(angle<=range
}
8 ﮔﺮاﻓﻴﻚ ﻛﺎﻣﭙﻴﻮﺗﺮي :ﺗﺮﺳﻴﻢ اﺷﻜﺎل ﭘﺎﻳﻪ ﻫﻨﺪﺳﻲ
ﺷﻜﻞ زﻳﺮ دو ﭘﻴﻜﺴﻞ ﻛﺎﻧﺪﻳﺪ ﺷﺪه در ﺳﺘﻮن xk + 1را ﻧﺸﺎن ﻣﻴﺪﻫﺪ .
ﻓﺮض ﻛﻨﻴﺪ ﭘﻴﻜﺴﻞ ) ( xk , ykرا اﻧﺘﺨﺎب ﻛﺮده اﻳﻢ ،ﺣﺎل در ﻣﺮﺣﻠﻪ ﺑﻌﺪي ﺑﺎﻳﺪ ﻳﻜﻲ از دو ﭘﻴﻜﺴﻞ ) ( xk + 1, ykﻳﺎ
1
) ( xk + 1, yk − 1را اﻧﺘﺨﺎب ﻛﻨﻴﻢ .ﺗﺎﺑﻊ داﻳﺮه ﺑﺮاي ﻧﻘﻄﻪ ﻣﻴﺎﻧﻲ ﺑﻴﻦ دو ﭘﻴﻜﺴﻞ ﻳﻌﻨﻲ ﻧﻘﻄﻪ ) ( xk + 1, yk −را
2
ﻣﺤﺎﺳﺒﻪ ﻣﻴﻜﻨﻴﻢ و دارﻳﻢ :
1 1
pk = f circle ( xk + 1, yk − ) = ( xk + 1) 2 + ( yk − ) 2 − r 2
2 2
ﺣﺎل اﮔﺮ pkﻣﺜﺒﺖ ﺑﻮد ،ﭘﻴﻜﺴﻞ ﭘﺎﻳﻴﻨﻲ ﻳﺎ ) ( xk + 1, yk − 1اﻧﺘﺨﺎب ﻣﻴﺸﻮد .در ﻏﻴﺮ اﻳﻦ ﺻﻮرت ﭘﻴﻜﺴﻞ ﺑﺎﻻﻳﻲ ﻳﺎ ﻫﻤﺎن
) ( xk + 1, ykاﻧﺘﺨﺎب ﻣﻲ ﺷﻮد.
ﺑﺮاي راﺣﺘﻲ ﻛﺎر ﻳﻚ ﻓﺮﻣﻮل ﺑﺎزﮔﺸﺘﻲ ﺑﺮاي ﻣﺤﺎﺳﺒﻪ pkﺑﺪﺳﺖ ﻣﻲ آورﻳﻢ.
1 1
pk +1 = f circle ( xk + 2, yk +1 − ) = ( xk + 2) 2 + ( yk +1 − ) 2 − r 2
2 2
ﻛﻪ در آن ﻣﻘﺪار yk +1ﺑﺴﺘﻪ ﺑﻪ ﻋﻼﻣﺖ pkﻣﻴﺘﻮاﻧﺪ ﻳﻜﻲ از دو ﻣﻘﺪار ykﻳﺎ yk − 1ﺑﺎﺷﺪ .ﺑﺎ ﻣﻘﺎﻳﺴﻪ pkو pk +1دارﻳﻢ :
⎧ p + 2 xk + 3 )if yk +1 = yk ;( Pk > 0
pk +1 = ⎨ k
⎩ pk + 2 xk − 2 yk + 5 )if yk +1 = yk − 1 ;( Pk < 0
ﻣﻘﺪار اوﻟﻴﻪ ﭘﺎراﻣﺘﺮ ﺗﺼﻤﻴﻢ ﮔﻴﺮي ﺑﻪ ازاي ﻧﻘﻄﻪ ﺷﺮوع ) (0, rﺑﺮاﺑﺮ اﺳﺖ ﺑﺎ :
9 ﺗﺮﺳﻴﻢ اﺷﻜﺎل ﭘﺎﻳﻪ ﻫﻨﺪﺳﻲ: ﮔﺮاﻓﻴﻚ ﻛﺎﻣﭙﻴﻮﺗﺮي
1 1 5
p0 = f circle (1, r − ) = 1 + ( r − ) 2 − r 2 = − r
2 2 4
. را ﻧﺸﺎن ﻣﻴﺪﻫﺪC++ روﻳﻪ زﻳﺮ ﭘﻴﺎده ﺳﺎزي اﻳﻦ اﻟﮕﻮرﻳﺘﻢ در زﺑﺎن
void midpoint_circle(const int h,const int k,const int r)
{
int color=getcolor( );
int x=0;
int y=r;
int p=(1-r);
do {
putpixel((h+x),(k+y),color);
putpixel((h+y),(k+x),color);
putpixel((h+y),(k-x),color);
putpixel((h+x),(k-y),color);
putpixel((h-x),(k-y),color);
putpixel((h-y),(k-x),color);
putpixel((h-y),(k+x),color);
putpixel((h-x),(k+y),color);
x++;
if(p<0)
p+=((2*x)+1);
else {
y--;
p+=((2*(x-y))+1);}
}
while(x<=y);
}
: اﻟﮕﻮرﻳﺘﻢ رﺳﻢ ﺑﻴﻀﻲ
اﺷﻜﺎل ﺑﻴﻀﻴﻮار را ﻣﻲ ﺗﻮان ﺑﺎ اﺻﻼح اﻟﮕﻮرﻳﺘﻢ، ﺑﻨﺎﺑﺮاﻳﻦ. ﺑﻴﻀﻲ ﻳﻚ داﻳﺮه ﻛﺸﻴﺪه ﺷﺪه اﺳﺖ، در ﻳﻚ ﺗﻌﺮﻳﻒ ﻣﻘﺪﻣﺎﺗﻲ
. رﺳﻢ داﻳﺮه رﺳﻢ ﻛﺮد
: ﺧﻮاص ﺑﻴﻀﻲ
ﻳﻚ ﺑﻴﻀﻲ ﺑﺼﻮرت ﻣﺠﻤﻮﻋﻪ اي از ﻧﻘﺎط ﺗﻌﺮﻳﻒ ﻣﻲ ﺷﻮد ﻛﻪ ﻣﺠﻤﻮع ﻓﺎﺻﻠﻪ آﻧﻬﺎ از دو ﻧﻘﻄﻪ ﺛﺎﺑﺖ ) ﻛﺎﻧﻮن ﻫﺎ ( ﻣﻘﺪاري ﺛﺎﺑﺖ
. اﺳﺖ
d1 + d 2 = Constant
F1 = ( x1 , y1 ), F2 = ( x2 , y2 )
(x-x1 ) 2 + ( y − y1 ) 2 + ( x − x2 ) 2 + ( y − y2 ) 2 = constant
10 ﮔﺮاﻓﻴﻚ ﻛﺎﻣﭙﻴﻮﺗﺮي :ﺗﺮﺳﻴﻢ اﺷﻜﺎل ﭘﺎﻳﻪ ﻫﻨﺪﺳﻲ
ﻛﻪ در آن aﺷﻌﺎع اﻓﻘﻲ و bﺷﻌﺎع ﻋﻤﻮدي اﺳﺖ .ﻣﺎ ﻣﻲ ﺗﻮاﻧﻴﻢ از ﻫﻤﻴﻦ ﺗﺎﺑﻊ ﺑﺮاي رﺳﻢ ﺑﻴﻀﻲ اﺳﺘﻔﺎده ﻛﻨﻴﻢ.
در ﻧﺎﺣﻴﻪ اول ﻛﻪ راﺑﻄﻪ dy / dx > −1ﺑﺮﻗﺮار اﺳﺖ :
در ﻫﺮ ﻣﺮﺣﻠﻪ ﻣﺆﻟﻔﻪ xﻳﻚ واﺣﺪ اﻓﺰاﻳﺶ ﻣﻲ ﻳﺎﺑﺪ .ﺑﻪ ﻋﺒﺎرﺗﻲ دارﻳﻢ xk +1 = xk + 1 :
دارﻳﻢ yk +1 = ykﻫﺮ ﮔﺎه ﭘﻴﻜﺴﻞ Eاﻧﺘﺨﺎب ﺷﻮد و دارﻳﻢ yk +1 = yk − 1ﻫﺮ ﮔﺎه ﭘﻴﻜﺴﻞ SEاﻧﺘﺨﺎب ﺷﻮد .ﺑﺮاي اﻳﻨﻜﻪ
ﺑﺘﻮاﻧﻴﻢ ﺑﻴﻦ اﻧﺘﺨﺎب دو ﭘﻴﻜﺴﻞ Sو SEﺗﺼﻤﻴﻢ ﺑﮕﻴﺮﻳﻢ ،ﻧﻘﻄﻪ ﻣﻴﺎﻧﻲ دو ﭘﻴﻜﺴﻞ ﻛﺎﻧﺪﻳﺪ را در ﻣﻌﺎدﻟﻪ ﻗﺮار ﻣﻴﺪﻫﻴﻢ .ﺗﺎﺑﻊ
ﭘﻴﺸﮕﻮي Pkﺑﺼﻮرت زﻳﺮ ﺗﻌﺮﻳﻒ ﻣﻴﺸﻮد:
Pk = f ( xk + 1, yk − 1 2) = b 2 ( xk + 1) 2 + a 2 ( yk − 1 2 ) 2 − a 2b 2 = b 2 ( xk 2 + 2 xk + 1) + a 2 ( yk 2 − yk + 1 4 ) − a 2b 2
if Pk < 0, select E:
Pk +1E = f ( xk + 2, yk − 1 2 ) = b 2 ( xk + 2) 2 + a 2 ( yk − 1 2 ) 2 − a 2b 2 = b 2 ( xk 2 + 4 xk + 4) + a 2 ( yk 2 − yk + 1 4 ) − a 2b 2
)∆Pk E = Pk +1E − Pk = b 2 (2 xk + 3
12 ﺗﺮﺳﻴﻢ اﺷﻜﺎل ﭘﺎﻳﻪ ﻫﻨﺪﺳﻲ: ﮔﺮاﻓﻴﻚ ﻛﺎﻣﭙﻴﻮﺗﺮي
∆Pk +1SE = b 2 (2 xk + 5) − 2a 2 ( yk − 1)
∆ 2 Pk SE = ∆Pk +1SE − ∆Pk SE = 2b 2
if SE is selected :
∆Pk +1E = b 2 (2 xk + 5)
∆ 2 Pk E = ∆Pk +1E − ∆Pk E = 2b 2
∆Pk +1SE = b 2 (2 xk + 5) − 2a 2 ( yk − 1)
∆ 2 Pk SE = ∆Pk +1SE − ∆Pk SE = 2( a 2 + b 2 )
Initial Value :
x0 = 0, y0 = b, P0 = b 2 + 1 4 a 2 (1 − 4b)
∆P0 E = 3b 2 , ∆P0 SE = 3b 2 − 2a 2 (b − 1)
در ﻫﺮy ﺑﺎ اﻳﻦ ﺗﻔﺎوت ﻛﻪ در ﻧﺎﺣﻴﻪ دوم ﻣﻘﺪار، ﺗﻤﺎم ﻣﺤﺎﺳﺒﺎت ﻣﺎﻧﻨﺪ ﻧﺎﺣﻴﻪ اول اﺳﺖdy / dx < −1 در ﻧﺎﺣﻴﻪ دوم ﻛﻪ
. واﺣﺪ ﻛﺎﻫﺶ ﻣﻲ ﻳﺎﺑﺪ1
Pk = f ( xk + 1 2 , yk − 1) = b 2 ( xk + 1 2 ) 2 + a 2 ( yk − 1) 2 − a 2b 2 = b 2 ( xk 2 + xk + 1 4 ) + a 2 ( yk 2 − 2 yk + 1) − a 2b 2
if Pk > 0, select S:
Pk +1S = f ( xk + 1 2 , yk − 2) = b 2 ( xk + 1 2 ) 2 + a 2 ( yk − 2) 2 − a 2b 2 = b 2 ( xk 2 + xk + 1 4) + a 2 ( yk 2 − 4 yk + 4) − a 2b 2
∆Pk S = Pk +1S − Pk = a 2 (3 − 2 yk )
13 ﺗﺮﺳﻴﻢ اﺷﻜﺎل ﭘﺎﻳﻪ ﻫﻨﺪﺳﻲ: ﮔﺮاﻓﻴﻚ ﻛﺎﻣﭙﻴﻮﺗﺮي
∆Pk +1SE = 2b 2 ( xk + 1) + a 2 (5 − 2 yk )
∆ 2 Pk SE = ∆Pk +1SE − ∆Pk SE = 2a 2
if SE is selected :
∆Pk +1S = a 2 (5 − 2 yk )
∆ 2 Pk S = ∆Pk +1S − ∆Pk E = 2a 2
∆Pk +1SE = 2b 2 (2 xk + 2) − a 2 (5 − 2 yk )
∆ 2 Pk SE = ∆Pk +1SE − ∆Pk SE = 2( a 2 + b 2 )
a2 b2
when dy / dx = −1, x = and y = .
a 2 + b2 a 2 + b2
a2 b2
At region1, dy / dx > −1, x < and y > , therefore
a2 + b2 a2 + b2
⎛ 2a 2 ⎞ ⎛ b2 ⎞
∆Pk SE < b 2 ⎜ + 3 ⎟ − 2a 2 ⎜ − 1⎟ = 2a 2 + 3b 2
⎝ a +b ⎠ ⎝ a +b ⎠
2 2 2 2
float y=b;
float fx=0;
float fy=(aa2*b);
float p=(int)(bb-(aa*b)+(0.25*aa)+0.5);
putpixel((h+x),(k+y),color);
putpixel((h+x),(k-y),color);
putpixel((h-x),(k-y),color);
putpixel((h-x),(k+y),color);
while(fx<fy)
{
x++;
fx+=bb2;
if(p<0)
p+=(fx+bb);
else {
y--;
fy-=aa2;
p+=(fx+bb-fy);
}
putpixel((h+x),(k+y),color);
putpixel((h+x),(k-y),color);
putpixel((h-x),(k-y),color);
putpixel((h-x),(k+y),color);
}
p=(int)((bb*(x+0.5)*(x+0.5))+(aa*(y-1)*(y-1))-(aa*bb)+0.5);
while(y>0) {
y--;
fy-=aa2;
if(p>=0)
p+=(aa-fy);
else {
x++;
fx+=bb2;
p+=(fx+aa-fy);
}
putpixel((h+x),(k+y),color);
putpixel((h+x),(k-y),color);
putpixel((h-x),(k-y),color);
putpixel((h-x),(k+y),color);
}
}
15 15 ﮔﺮاﻓﻴﻚ ﻛﺎﻣﭙﻴﻮﺗﺮي :ﻧﻤﺎﻳﻲ ﻛﻠﻲ از ﺳﻴﺴﺘﻢ ﻫﺎي ﮔﺮاﻓﻴﻜﻲ
ﺑﻪ ﻃﻮر ﻣﺸﺨﺺ ،اوﻟﻴﻦ و اﺻﻠﻲ ﺗﺮﻳﻦ دﺳﺘﮕﺎه ﺧﺮوﺟﻲ در ﻳﻚ ﺳﻴﺴﺘﻢ ﮔﺮاﻓﻴﻜﻲ ﻧﻤﺎﻳﺸﮕﺮﻫﺎي وﻳﺪﺋﻮﻳﻲ ﻫﺴﺘﻨﺪ .ﻋﻤﻠﻜﺮد
اﻛﺜﺮ ﻧﻤﺎﻳﺸﮕﺮﻫﺎي وﻳﺪﺋﻮﻳﻲ ﺑﺮ ﭘﺎﻳﻪ ﻃﺮاﺣﻲ CRTاﺳﺖ ،اﻣﺎ ﻫﻢ اﻛﻨﻮن ﺗﻜﻨﻮﻟﻮژي ﻫﺎي دﻳﮕﺮي ﻧﻴﺰ وﺟﻮد دارﻧﺪ ﻛﻪ ﻛﺎرﺑﺮد
ﻓﺮاواﻧﻲ ﻫﻢ دارﻧﺪ.
دو روش در رﺳﻢ ﺗﺼﺎوﻳﺮ وﺟﻮد دارد :
-روش ﺗﺮﺳﻴﻢ ﺑﺮداري .
-روش ﺗﺮﺳﻴﻢ راﺳﺘﺮ .
ﺗﻠﻮﻳﺰﻳﻮﻧﻬﺎ و ﭼﺎﭘﮕﺮﻫﺎ از اﻳﻦ ﺳﻴﺴﺘﻢ اﺳﺘﻔﺎده ﻣﻴﻜﻨﻨﺪ .ﻫﺮ ﻧﻘﻄﻪ روﺷﻦ روي ﺻﻔﺤﻪ ﻧﻤﺎﻳﺶ را ﻳﻚ ﭘﻴﻜﺴﻞ ﻣﻴﮕﻮﻳﻨﺪ.
روﺷﻨﺎﻳﻲ ﻫﺮ ﭘﻴﻜﺴﻞ ﺑﻪ ﺳﻴﺴﺘﻢ ﮔﺮاﻓﻴﻜﻲ ﺑﺴﺘﮕﻲ دارد .در ﻳﻚ ﺳﻴﺴﺘﻢ ﺳﻴﺎه ﺳﻔﻴﺪ ،ﺗﻨﻬﺎ از ﻳﻚ ﺑﻴﺖ ﺑﺮاي روﺷﻨﺎﻳﻲ ﭘﻴﻜﺴﻞ
اﺳﺘﻔﺎده ﻣﻴﺸﻮد .ﺑﻴﺖ 1ﺑﻪ ﻣﻌﻨﺎي روﺷﻦ ﺑﻮدن و ﺑﻴﺖ 0ﺑﻪ ﻣﻌﻨﺎي ﺧﺎﻣﻮش ﺑﻮدن ﭘﻴﻜﺴﻞ اﺳﺖ .در ﺳﻴﺴﺘﻢ ﻫﺎي ﮔﺮاﻓﻴﻚ
ﺑﺎﻻ ﻣﻌﻤﻮﻻ از 24ﺑﻴﺖ ﺑﻪ ﺑﺎﻻ اﺳﺘﻔﺎده ﻣﻴﺸﻮد .ﻫﻤﭽﻨﻴﻦ ﺗﺎزه ﺳﺎزي ﺑﺎ ﺳﺮﻋﺘﻲ ﺣﺪود 60ﺗﺎ 80ﻓﺮم در ﺛﺎﻧﻴﻪ اﻧﺠﺎم ﻣﻴﺸﻮد.
ﻳﻚ ﭘﺮﺗﻮ اﻟﻜﺘﺮوﻧﻲ ﺗﻮﺳﻂ ﺗﻔﻨﮓ اﻟﻜﺘﺮوﻧﻲ ﻣﻨﺘﺸﺮ ﻣﻴﺸﻮد .ﺳﭙﺲ از ﺳﻴﺴﺘﻢ ﻛﺎﻧﻮﻧﻲ 2و ﺳﻴﺴﺘﻢ اﻧﺤﺮاف 3ﻛﻪ ﭘﺮﺗﻮ را ﺑﻪ ﻳﻚ
ﻧﻘﻄﻪ ﻣﻌﻴﻦ روي ﺻﻔﺤﻪ ﻓﺴﻔﺮ ﻫﺪاﻳﺖ ﻣﻴﻜﻨﺪ ﻣﻴﮕﺬرد.
ﻓﺴﻔﺮ در ﻫﺮ ﻛﺠﺎ ﻛﻪ ﭘﺮﺗﻮ ﺑﺎ آن ﺑﺮﺧﻮرد ﻛﺮده ﺑﺎﺷﺪ ﻳﻚ ﻧﻘﻄﻪ ﻛﻮﭼﻚ را ﻧﻮراﻧﻲ ﺧﻮاﻫﺪ ﻛﺮد .از آﻧﺠﺎﻛﻪ ﭘﺮﺗﻮ ﺗﺎﺑﻴﺪه ﺷﺪه ﺑﻪ
ﻓﺴﻔﺮ ﺑﻪ ﺳﺮﻋﺖ ﻣﺤﻮ ﻣﻴﺸﻮد ،ﻣﺘﺪﻫﺎﻳﻲ ﻻزم اﺳﺖ ﺗﺎ ﺗﺼﻮﻳﺮ را روي ﺻﻔﺤﻪ ﻧﻤﺎﻳﺶ ﻧﮕﻪ دارﻧﺪ .ﻳﻜﻲ از اﻳﻦ ﻣﺘﺪﻫﺎ ارﺳﺎل
ﭘﻴﺎﭘﻲ ﭘﺮﺗﻮ اﻟﻜﺘﺮون ﺑﻪ ﻫﻤﺎن ﻧﻘﻄﻪ ﻗﺒﻠﻲ اﺳﺖ .ﺑﻪ اﻳﻦ ﻋﻤﻞ ﺗﺎزه ﺳﺎزي ﻣﻴﮕﻮﻳﻨﺪ.
ﺣﺎل ﻗﺴﻤﺘﻬﺎي ﻣﺨﺘﻠﻒ ﻳﻚ ﻧﻤﺎﻳﺸﮕﺮ CRTو وﻇﺎﻳﻒ آﻧﻬﺎ را ﺗﻚ ﺗﻚ ﺗﺸﺮﻳﺢ ﻣﻴﻜﻨﻴﻢ:
: Heating filamentﺑﻪ ﻛﻤﻚ اﻳﻦ ﮔﺮم ﻛﻨﻨﺪه ﺗﻔﻨﮓ اﻟﻜﺘﺮوﻧﻲ ﮔﺮم ﺧﻮاﻫﺪ ﺷﺪ ﺗﺎ ﺑﺘﻮاﻧﺪ ﺗﻮﻟﻴﺪ ﭘﺮﺗﻮﻫﺎي اﻟﻜﺘﺮوﻧﻲ را
ﺗﺴﺮﻳﻊ ﺑﺨﺸﺪ.
: Electronic Gunﺗﻮﻟﻴﺪ ﭘﺮﺗﻮﻫﺎي اﻟﻜﺘﺮوﻧﻲ ﺑﺎ ﻓﺮﻛﺎﻧﺲ ﺧﺎﺻﻲ را ﺑﺮ ﻋﻬﺪه دارد ﻛﻪ اﻳﻦ ﻓﺮﻛﺎﻧﺲ ﻣﻌﻤﻮﻻً ﺑﻪ دﻗﺖ
ﻣﺎﻧﻴﺘﻮر واﺑﺴﺘﻪ اﺳﺖ.
: Control Gridﺷﺪت ﭘﺮﺗﻮ اﻟﻜﺘﺮوﻧﻲ ﺗﻮﺳﻂ ﺗﻐﻴﻴﺮ ﺳﻄﺢ وﻟﺘﺎژ اﻳﻦ ﻗﺴﻤﺖ ﻛﻨﺘﺮل ﻣﻴﺸﻮد .ﻳﻚ وﻟﺘﺎژ ﻣﻨﻔﻲ ﻗﻮي در
Control Gridاﺳﺘﻔﺎده ﻣﻴﺸﻮد ﺗﺎ ﻣﺎﻧﻊ ﻋﺒﻮر اﻟﻜﺘﺮوﻧﻬﺎ از ﺣﻔﺮه اﻧﺘﻬﺎﻳﻲ control gridﺷﻮد .ﻳﻚ وﻟﺘﺎژ ﭘﺎﻳﻴﻦ ﺑﻪ راﺣﺘﻲ ﻣﻴﺘﻮاﻧﺪ
ﺗﻌﺪاد اﻟﻜﺘﺮوﻧﻬﺎي ﻋﺒﻮري را ﻛﺎﻫﺶ دﻫﺪ .از آﻧﺠﺎ ﻛﻪ ﻣﻴﺰان ﻧﻮر ﺳﺎﺗﻊ ﺷﺪه از ﺻﻔﺤﻪ ﻓﺴﻔﺮ ﺑﻪ ﺗﻌﺪاد اﻟﻜﺘﺮوﻧﻬﺎي ﺑﺮﺧﻮردي ﺑﻪ
ﺻﻔﺤﻪ ﻓﺴﻔﺮ ﺑﺴﺘﮕﻲ دارد ،ﻟﺬا ﻣﻴﺘﻮاﻧﻴﻢ ﻣﻴﺰان روﺷﻨﺎﻳﻲ ﺻﻔﺤﻪ ﻧﻤﺎﻳﺶ را ﺑﺎ ﻛﻨﺘﺮل ﺳﻄﺢ وﻟﺘﺎژ control gridﺗﻨﻈﻴﻢ ﻛﺮد.
ﻫﻤﻬﭽﻨﻴﻦ ﻣﻴﺘﻮان ﺑﺎ اﻋﻤﺎل ﻳﻚ وﻟﺘﺎژ ﻣﺜﺒﺖ ﺳﺮﻋﺖ ﻋﺒﻮر اﻟﻜﺘﺮون را اﻓﺰاﻳﺶ داد.
: Focusing Systemاﻳﻦ ﺳﻴﺴﺘﻢ ﭘﺮﺗﻮ ﻧﻮر را ﻣﺠﺒﻮر ﻣﻴﻜﻨﺪ ﺗﺎ در ﻳﻚ ﻧﻘﻄﻪ روي ﺻﻔﺤﻪ ﻓﺴﻔﺮ ﻫﻤﮕﺮا ﺷﻮد .ﻋﻤﻞ
ﻣﺘﻤﺮﻛﺰ ﻛﺮدن ﺗﻮﺳﻂ ﻣﻴﺪاﻧﻬﺎي ﻣﻐﻨﺎﻃﻴﺴﻲ و اﻟﻜﺘﺮﻳﻜﻲ اﻧﺠﺎم ﻣﻴﺸﻮد.
ﻣﺎﻧﻴﺘﻮرﻫﺎي CRTرﻧﮕﻲ:
اﻳﻦ ﻣﺎﻧﻴﺘﻮرﻫﺎ ﺗﺼﺎوﻳﺮ رﻧﮕﻲ را ﺑﺎ اﺳﺘﻔﺎده از ﺻﻔﺤﺎت ﻓﺴﻔﺮي ﻛﻪ رﻧﮕﻬﺎي ﻣﺨﺘﻠﻒ را از ﺧﻮد ﺳﺎﺗﻊ ﻣﻴﻜﻨﻨﺪ ،ﻧﺸﺎن ﻣﻴﺪﻫﻨﺪ .ﺑﺎ
ﺗﺮﻛﻴﺐ اﻳﻦ رﻧﮕﻬﺎ ﻣﻴﺘﻮان رﻧﮕﻬﺎي ﻣﺘﻌﺪدي را ﺑﺪﺳﺖ آورد.
ﻳﻜﻲ از روﺷﻬﺎي ﺗﻮﻟﻴﺪ ﻣﺎﻧﻴﺘﻮرﻫﺎي CRTرﻧﮕﻲ ،اﺳﺘﻔﺎده از ﺻﻔﺤﺎت Shadow maskاﺳﺖ.
1
Cathode Ray Tube
2
Focusing System
3
Deflection System
18 18 ﮔﺮاﻓﻴﻚ ﻛﺎﻣﭙﻴﻮﺗﺮي :ﻧﻤﺎﻳﻲ ﻛﻠﻲ از ﺳﻴﺴﺘﻢ ﻫﺎي ﮔﺮاﻓﻴﻜﻲ
روش Shadow maskﺑﻴﺸﺘﺮ روي ﺳﻴﺴﺘﻢ ﻫﺎي raster – scanاﺳﺘﻔﺎده ﻣﻴﺸﻮد .اﻳﻦ ﮔﻮﻧﻪ ﻣﺎﻧﻴﺘﻮر داراي ﺳﻪ ﺻﻔﺤﻪ
ﻓﺴﻔﺮ اﻧﺪ .ﻳﻜﻲ ﻧﻮر ﻗﺮﻣﺰ ،دﻳﮕﺮي ﻧﻮر آﺑﻲ و ﺳﻮﻣﻲ ﻧﻮر ﺳﺒﺰ را از ﺧﻮد ﻣﻨﺘﺸﺮ ﻣﻴﻜﻨﺪ .ﻫﻤﭽﻨﻴﻦ در اﻳﻦ روش از ﺳﻪ ﺗﻔﻨﮓ
اﻟﻜﺘﺮوﻧﻲ اﺳﺘﻔﺎده ﻣﻴﺸﻮد .ﺳﻪ ﭘﺮﺗﻮ اﻟﻜﺘﺮوﻧﻲ ﺗﻮﻟﻴﺪ ﺷﺪه ﺑﺼﻮرت ﮔﺮوﻫﻲ ﻣﺘﻤﺮﻛﺰ و ﻣﻨﺤﺮف ﻣﻴﺸﻮﻧﺪ و ﭘﺲ از ﻋﺒﻮر از ﺻﻔﺤﻪ
Shadow maskﺑﺼﻮرت ﻳﻚ ﻧﻘﻄﻪ رﻧﮕﻲ ﻛﻮﭼﻚ روي ﺻﻔﺤﻪ ﻧﻤﺎﻳﺶ ﻇﺎﻫﺮ ﻣﻴﺸﻮﻧﺪ.
ﺗﻜﻨﻮﻟﻮژِي : DVST4
اﻳﻦ ﺗﻜﻨﻮﻟﻮژي ﻣﺎﻧﻨﺪ ﺗﻜﻨﻮﻟﻮژي CRTاﺳﺖ .ﺑﺎ اﻳﻦ ﺗﻔﺎوت ﻛﻪ ﻧﻴﺎز ﺑﻪ ﻋﻤﻞ ﺗﺎزه ﺳﺎزي ﻧﺨﻮاﻫﻴﻢ داﺷﺖ .در اﻳﻦ ﺗﻜﻨﻮﻟﻮژي
ﺗﺼﺎوﻳﺮ در ﺻﻔﺤﻪ ﺑﻪ ﻋﻨﻮان Charge Distributionذﺧﻴﺮه ﻣﻴﺸﻮﻧﺪ .ﻣﻌﺎدل ﺑﺎ ﻫﺮ ﭘﻴﻜﺴﻞ ﻳﻚ ﺧﺎزن دارﻳﻢ .در ﭘﺸﺖ
ﺻﻔﺤﻪ اﺻﻠﻲ ﺻﻔﺤﻪ اي اﺳﺖ ﻛﻪ ﻣﺎﻧﻨﺪ ﺧﺎزن ﻋﻤﻞ ﻣﻴﻜﻨﺪ و ﻗﺪرت ذﺧﻴﺮه ﺳﺎزي وﻟﺘﺎژ را ﺧﻮاﻫﺪ داﺷﺖ.
ﻣﺰﻳﺖ اﻳﻦ ﺗﻜﻨﻮﻟﻮژي :ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﻳﻨﻜﻪ در اﻳﻦ روش ﻧﻴﺎز ﺑﻪ ﻋﻤﻞ ﺗﺎزه ﺳﺎزي ﻧﻴﺴﺖ ﻧﻴﺎز ﺑﻪ ﭘﻬﻨﺎي ﺑﺎﻧﺪ ﺑﺎﻻ ﻧﺪارد و ﺗﺼﺎوﻳﺮ ﺑﺎ
دﻗﺖ ﺑﺎﻻ ﻣﻴﺘﻮاﻧﻨﺪ ﺑﺪون ﻟﺮزش روي ﺻﻔﺤﻪ ﻧﻤﺎﻳﺶ ﻧﺸﺎن داده ﺷﻮﻧﺪ.
ﻋﻴﺐ اﻳﻦ ﺗﻜﻨﻮﻟﻮژي :ﺑﺮاي ﺗﻐﻴﻴﺮ دادن ﺑﺨﺸﻲ از ﺗﺼﻮﻳﺮ ﺑﺎﻳﺪ اﻟﮕﻮي ﺗﺼﻮﻳﺮ دوﺑﺎره در ﺧﺎزن ذﺧﻴﺮه ﺷﻮد ﻛﻪ اﻳﻦ ﻋﻤﻞ ﻣﺪت
زﻣﺎن زﻳﺎدي ﻃﻮل ﻣﻴﻜﺸﺪ.
ﻣﺜﺎﻟﻲ از ﻧﻤﺎﻳﺸﮕﺮﻫﺎي ﺳﺎﺗﻊ ﻛﻨﻨﺪه ﻋﺒﺎرﺗﻨﺪ از :ﺻﻔﺤﻪ ﻧﻤﺎﻳﺸﮕﺮﻫﺎي ﭘﻼﺳﻤﺎ و ﻧﻤﺎﻳﺸﮕﺮ ﻫﺎي دﻳﻮدي .در ﻣﻘﺎﺑﻞ ﺻﻔﺤﻪ
ﻧﻤﺎﻳﺸﮕﺮﻫﺎي ﻛﺮﻳﺴﺘﺎل ﻣﺎﻳﻊ ﻧﻤﻮﻧﻪ اي از ﻧﻤﺎﻳﺸﮕﺮﻫﺎي ﻏﻴﺮﺳﺎﺗﻊ ﻛﻨﻨﺪه اﻧﺪ.
4
Direct View Storage Tube
5
Emissive Display
6
Non-Emissive Display
19 19 ﮔﺮاﻓﻴﻚ ﻛﺎﻣﭙﻴﻮﺗﺮي :ﻧﻤﺎﻳﻲ ﻛﻠﻲ از ﺳﻴﺴﺘﻢ ﻫﺎي ﮔﺮاﻓﻴﻜﻲ
ﺗﻜﻨﻮﻟﻮژي : EL
اﻳﻦ ﺗﻜﻨﻮﻟﻮژي ﺗﺮﻛﻴﺒﻲ از ﭘﻼﺳﻤﺎ و DVSTﻣﻴﺒﺎﺷﺪ .ﺗﺨﺖ ﺑﻮدن آن از ﭘﻼﺳﻤﺎ و Refreshﻛﺮدن آن از . DVST
7
Plasma Display Panel
20 ﮔﺮاﻓﻴﻚ ﻛﺎﻣﭙﻴﻮﺗﺮي :ﭘﺮﻛﺮدن و ﺑﺮش اﺷﻜﺎل
ﭘﺮ ﻛﺮدن و
ﺑﺮش اﺷﻜﺎل
ﻣﺒﺎﺣﺚ اﻳﻦ ﻓﺼﻞ:
ﭘﺮ ﻛﺮدن اﺷﻜﺎل
رﺳﻢ اﺷﻜﺎل ﺑﺎ ﻗﻄﺮ ﺑﻴﺶ از ﻳﻚ ﭘﻴﻜﺴﻞ
• Replaceing pixel
• Moving Pen
• Filling Area Between Bound Areas
• Approximately By Tick Poly Line
ﺑﺮش اﺷﻜﺎل
• اﻟﮕﻮرﻳﺘﻢ Cohen-suterland
• اﻟﮕﻮرﻳﺘﻢ Cyrus-Beck
21 ﮔﺮاﻓﻴﻚ ﻛﺎﻣﭙﻴﻮﺗﺮي :ﭘﺮﻛﺮدن و ﺑﺮش اﺷﻜﺎل
ﺑﺮاي ﻫﺮ ﺧﻂ اﺳﻜﻦ ﺷﺪه ﻛﻪ از ﭼﻨﺪﺿﻠﻌﻲ ﻋﺒﻮر ﻛﺮده اﺳﺖ ،اﻟﮕﻮرﻳﺘﻢ ﻧﻘﺎط ﺗﻘﺎﺗﻊ ﺧﻂ اﺳﻜﻦ ﺷﺪه ﺑﺎ ﭼﻨﺪﺿﻠﻌﻲ را ﺑﺪﺳﺖ
ﻣﻲ آورد .ﺳﭙﺲ اﻳﻦ ﻧﻘﺎط ﺗﻘﺎﻃﻊ از ﭼﭗ ﺑﻪ راﺳﺖ ﻣﺮﺗﺐ ﻣﻴﺸﻮﻧﺪ و در ﻧﻬﺎﻳﺖ ﻣﻜﺎﻧﻬﺎي ﺑﻴﻦ ﻫﺮ ﺟﻔﺖ از اﻳﻦ ﻧﻘﺎط در
ﻣﻴﺎﻧﮕﻴﺮ ﻗﺎب ﺑﺎ رﻧﮓ ﻣﺸﺨﺼﻲ ﻣﻘﺪاردﻫﻲ ﻣﻴﺸﻮﻧﺪ.
در ﻫﻤﻴﻦ ﻣﺜﺎل ﻗﺒﻠﻲ ﭼﻬﺎر ﻧﻘﻄﻪ ﺗﻘﺎﻃﻊ ﺗﻮﺳﻂ اﻟﮕﻮرﻳﺘﻢ ﺗﻌﻴﻴﻦ ﻣﻴﺸﻮﻧﺪ و ﭘﻴﻜﺴﻠﻬﺎي داﺧﻠﻲ از x = 10ﺗﺎ x = 14و از
x = 18ﺗﺎ x = 24در ﻣﻴﺎﻧﮕﻴﺮ ﻗﺎب ﺑﺎ رﻧﮓ ﻣﺸﺨﺺ ﻣﻘﺪاردﻫﻲ ﻣﻴﺸﻮﻧﺪ.
اﻣﺎ دﻗﺖ ﻛﻨﻴﺪ ﻛﻪ اﮔﺮ ﻧﻘﺎط ﺗﻘﺎﻃﻊ ﺧﻂ اﺳﻜﻦ ﺑﺎ ﭼﻨﺪﺿﻠﻌﻲ ،رﺋﻮس ﭼﻨﺪﺿﻠﻌﻲ ﺑﺎﺷﺪ در اﻳﻦ ﺻﻮرت ﻧﻴﺎز ﺑﻪ ﻳﻚ ﺳﺮي
دﺳﺘﻜﺎري ﻧﻘﺎط ﺗﻘﺎﻃﻊ دارﻳﻢ .ﺑﺮاي ﻣﺜﺎل ﺷﻜﻞ زﻳﺮ را در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ .در اﻳﻦ ﺻﻮرت ﭼﮕﻮﻧﻪ ﻣﻴﺘﻮان ﻧﺎﺣﻴﻪ داﺧﻞ ﭼﻨﺪﺿﻠﻌﻲ
را ﺗﺸﺨﻴﺺ داد.
در اﻳﻨﺠﺎ ﺧﻂ اﺳﻜﻦ yﻫﻴﭻ ﻣﺸﻜﻠﻲ ﻫﻤﺮاه ﻧﺪارد اﻣﺎ ﺧﻂ اﺳﻜﻦ y′در ﻧﻘﻄﻪ 2داراي ﻣﺸﻜﻞ اﺳﺖ .ﺑﺮاي ﺣﻞ ﻣﺸﻜﻞ
ﻣﻴﺘﻮان ﺑﺪﻳﻨﮕﻮﻧﻪ ﻋﻤﻞ ﻛﺮد :ﺑﺮاي ﻫﺮ ﻧﻘﻄﻪ ﺗﻘﺎﻃﻊ ،ﻗﺒﻞ و ﺑﻌﺪ ﻧﻘﻄﻪ را ﻧﮕﺎه ﻣﻴﻜﻨﻴﻢ .اﮔﺮ ﺑﻪ ﻃﻮر ﻳﻜﻨﻮاﺧﺖ ﻧﺰوﻟﻲ ﻳﺎ ﺻﻌﻮدي
22 ﮔﺮاﻓﻴﻚ ﻛﺎﻣﭙﻴﻮﺗﺮي :ﭘﺮﻛﺮدن و ﺑﺮش اﺷﻜﺎل
ﺑﻮد ﻛﻪ ﻧﻘﻄﻪ را ﺑﻪ ﻋﻨﻮان ﻧﻘﻄﻪ ﺗﻘﺎﻃﻊ در ﻧﻈﺮ ﻣﻴﮕﻴﺮﻳﻢ و در ﻏﻴﺮاﻳﻦ ﺻﻮرت ﻧﻘﻄﻪ را ﺑﻪ ﺻﻮرت دو ﻧﻘﻄﻪ ﺗﻘﺎﻃﻊ در ﻳﻚ ﻣﻜﺎن
در ﻧﻈﺮ ﻣﻴﮕﻴﺮﻳﻢ.
ﺑﺮاي ﭘﻴﺎده ﺳﺎزي اﻳﻦ روش ﻧﻴﺎز ﺑﻪ ﻣﺤﺎﺳﺒﺎت ﻓﺮاوان ﻣﻴﺒﺎﺷﺪ .وﻟﻲ ﻣﺰﻳﺖ آن ﻧﺴﺒﺖ ﺑﻪ اﻟﮕﻮرﻳﺘﻢ ﻣﻌﺎدﻻت رﻳﺎﺿﻲ ﺗﻮاﻧﺎﻳﻲ در
ﭘﺮ ﻛﺮدن اﺷﻜﺎل ﭼﻨﺪﺿﻠﻌﻲ ﻧﺎﻣﻨﺘﻈﻢ اﺳﺖ.
8
Clipping Operation
9
Clipping Algorithm
10
Clipping Window
23 ﮔﺮاﻓﻴﻚ ﻛﺎﻣﭙﻴﻮﺗﺮي :ﭘﺮﻛﺮدن و ﺑﺮش اﺷﻜﺎل
ﺑﺴﺘﻪ ﺑﻪ ﻧﻮع ﻛﺎرﺑﺮد ،ﭘﻨﺠﺮه ﺑﺮش ﻣﻴﺘﻮاﻧﺪ ﻳﻚ ﭼﻨﺪﺿﻠﻌﻲ ﻧﺎﻣﺘﻘﺎرن و ﻳﺎ ﻳﻚ ﻣﻨﺤﻨﻲ ﺑﺴﺘﻪ ﺑﺎﺷﺪ .در اﻳﻨﺠﺎ ﺗﻨﻬﺎ ﺑﺮش را ﺑﺎ
ﭘﻨﺠﺮه ﺑﺮش ﻣﺴﺘﻄﻴﻞ ﺷﻜﻞ اﻧﺠﺎم ﺧﻮاﻫﻴﻢ داد.
در اﻳﻦ ﻓﺼﻞ ﻣﺎ ﺑﺮش ﻧﻘﻄﻪ و ﺑﺮش ﺧﻂ را ﺑﺮرﺳﻲ ﻣﻴﻜﻨﻴﻢ .رواﻟﻬﺎي ﺑﺮش ﺧﻂ و ﺑﺮش ﻧﺎﺣﻴﻪ از اﺟﺰاء اﺳﺘﺎﻧﺪارد ﺑﺴﺘﻪ ﻫﺎي
ﮔﺮاﻓﻴﻜﻲ ﻫﺴﺘﻨﺪ اﻣﺎ ﻫﻤﻪ اﻳﻦ ﺑﺴﺘﻪ ﻫﺎ داراي روال ﻣﺨﺼﻮص ﺑﺮاي ﺑﺮش ﻣﻨﺤﻨﻲ و اﺷﻜﺎل ﻛﺎﻧﻮﻧﻲ)ﻣﺜﻞ داﻳﺮه و ﺑﻴﻀﻲ(
ﻧﻴﺴﺘﻨﺪ و ﻣﻤﻜﻦ اﺳﺖ اﻳﻦ اﺷﻜﺎل را ﺑﺼﻮرت ﺧﻂ ﻣﺴﺘﻘﻴﻢ در ﻧﻈﺮ ﺑﮕﻴﺮﻧﺪ و ﺳﭙﺲ ﺑﺎ اﺳﺘﻔﺎده از روال ﻫﺎي ﺑﺮش ﺧﻂ و
ﻧﺎﺣﻴﻪ ﺑﻪ ﻫﺪف ﺧﻮد ﺑﺮﺳﻨﺪ.
اﺑﺘﺪا ﺑﺮرﺳﻲ ﻣﻴﻜﻨﻴﻢ ﻛﻪ آﻳﺎ ﺧﻂ ﺑﻪ ﻃﻮر ﻛﺎﻣﻞ داﺧﻞ ﭘﻨﺠﺮه ﺑﺮش ﻗﺮار دارد ﻳﺎ ﻧﻪ .اﮔﺮ ﻗﺮار ﻧﺪاﺷﺖ ﺑﺮرﺳﻲ ﻣﻴﻜﻨﻴﻢ آﻳﺎ ﺧﻂ
ﻛﺎﻣﻼ ﺧﺎرج ﭘﻨﺠﺮه ﺑﺮش ﻗﺮار دارد ﻳﺎ ﻧﻪ .در ﻧﻬﺎﻳﺖ اﮔﺮ ﺧﻂ ﻛﺎﻣﻼ در داﺧﻞ ﻳﺎ ﺧﺎرج ﻧﺎﺣﻴﻪ ﺑﺮش ﻧﺒﻮد ﺑﺎ اﻧﺠﺎم ﻳﻚ ﺳﺮي
ﻣﻌﺎدﻻت ﺗﺸﺨﻴﺺ ﻣﻴﺪﻫﻴﻢ ﻛﺪام ﺑﺨﺶ از ﺧﻂ ،داﺧﻞ و ﻛﺪام ﺑﺨﺶ ﺧﺎرج ﭘﻨﺠﺮه ﺑﺮش ﻗﺮار دارد .در ﻧﻬﺎﻳﺖ ﻫﺪف ﻣﺎ ﺑﺪﺳﺖ
آوردن اﻟﮕﻮرﻳﺘﻤﻲ ﻛﺎراﻣﺪ ﺑﺮاي ﺣﺬف ﺧﻄﻮط ﺧﺎرج از ﻧﺎﺣﻴﻪ ﺑﺎ اﻧﺠﺎم ﻛﻤﺘﺮﻳﻦ ﻣﺤﺎﺳﺒﺎت اﺳﺖ.
24 ﮔﺮاﻓﻴﻚ ﻛﺎﻣﭙﻴﻮﺗﺮي :ﭘﺮﻛﺮدن و ﺑﺮش اﺷﻜﺎل
اﻟﮕﻮرﻳﺘﻢ ﻫﺎي ﻛﺎراﻣﺪي ﺑﺮاي ﺑﺮش ﺧﻂ وﺟﻮد دارد ﻛﻪ ﻣﺎ در اﻳﻨﺠﺎ ﻣﻬﻤﺘﺮﻳﻦ آﻧﻬﺎ را ﺑﺮرﺳﻲ ﻣﻴﻜﻨﻴﻢ .ﺑﻌﻀﻲ از اﻳﻦ
اﻟﮕﻮرﻳﺘﻤﻬﺎ ﻣﺨﺘﺺ اﺷﻜﺎل دو ﺑﻌﺪي ﻣﻲ ﺑﺎﺷﻨﺪ و ﺑﻌﻀﻲ دﻳﮕﺮ ﺑﻪ ﺳﺎدﮔﻲ ﺑﻪ اﺷﻜﺎل ﺳﻪ ﺑﻌﺪي ﺗﻌﻤﻴﻢ ﻣﻲ ﻳﺎﺑﻨﺪ.
ﺑﺎ اﻳﻦ ﻛﺪ ﮔﺬاري ﻣﻴﺘﻮان ﺑﺮاﺣﺘﻲ وﺿﻌﻴﺖ ﺧﻂ را ﻧﺴﺒﺖ ﺑﻪ ﻣﺴﺘﻄﻴﻞ ﺑﺮش ﺗﺸﺨﻴﺺ داد.
اﻟﻒ ( ﺧﻂ داﺧﻞ ﻣﺴﺘﻄﻴﻞ ﺑﺮش اﺳﺖ :زﻣﺎﻧﻴﻜﻪ ﻛﺪ ﻣﺮﺑﻮط ﺑﻪ اﻧﺘﻬﺎي ﻫﺮ دو ﺳﺮ ﺧﻂ ﺑﺮاﺑﺮ 0000ﺑﺎﺷﺪ .اﻳﻦ ﺧﻄﻮط ﺑﺪون
اﻧﺠﺎم ﻣﺤﺎﺳﺒﺎت رﻳﺎﺿﻲ ﭘﺬﻳﺮﻓﺘﻪ ﻣﻴﺸﻮﻧﺪ .ﺑﺮاي ﺗﺴﺖ اﻳﻦ ﺷﺮط ﻣﻴﺘﻮان ﻛﺪ ﻣﺮﺑﻮط ﺑﻪ دو اﻧﺘﻬﺎي ﺧﻂ را ﺑﺎ ﻫﻢ ORﻛﺮد اﮔﺮ
ﻧﺘﻴﺠﻪ 0000ﺑﻮد ﺧﻂ ﺗﻤﺎﻣﺎً داﺧﻞ ﻧﺎﺣﻴﻪ ﺑﺮش اﺳﺖ.
ب ( ﺧﻂ ﺧﺎرج ﻧﺎﺣﻴﻪ ﺑﺮش اﺳﺖ :زﻣﺎﻧﻴﻜﻪ ﺣﺪاﻗﻞ ﻳﻚ ﺑﻴﺖ 1در ﻳﻚ ﻣﻜﺎن ﻣﺸﺨﺺ در ﻛﺪ ﻫﺮ دو اﻧﺘﻬﺎي ﺧﻂ ﻳﺎﻓﺖ ﺷﻮد.
اﻳﻦ ﺧﻄﻮط ﺑﺪون اﻧﺠﺎم ﻣﺤﺎﺳﺒﺎت رﻳﺎﺿﻲ ﺣﺬف ﻣﻴﺸﻮﻧﺪ .ﺑﺮاي ﺗﺴﺖ اﻳﻦ ﺷﺮط ﻣﻴﺘﻮان ﻛﺪ ﻣﺮﺑﻮط ﺑﻪ دو اﻧﺘﻬﺎي ﺧﻂ را ﺑﺎ
ﻫﻢ ANDﻛﺮد اﮔﺮ ﻧﺘﻴﺠﻪ ﭼﻴﺰي ﻏﻴﺮ از 0000ﺑﻮد ﺧﻂ ﺗﻤﺎﻣﺎً ﺧﺎرج ﻧﺎﺣﻴﻪ ﺑﺮش اﺳﺖ.
ج ( ﺑﺨﺸﻲ از ﺧﻂ داﺧﻞ و ﺑﺨﺸﻲ از ﺧﻂ ﺧﺎرج ﻧﺎﺣﻴﻪ ﺑﺮش اﺳﺖ :ﻫﺮ ﺣﺎﻟﺘﻲ ﺑﻪ ﺟﺰ ﺣﺎﻻت ﺑﺎﻻ .در اﻳﻦ ﺣﺎﻟﺖ ﺑﺮاي اﻳﻨﻜﻪ
ﻣﻮﻗﻌﻴﺖ ﺧﻂ را ﻧﺴﺒﺖ ﺑﻪ ﻣﺴﺘﻄﻴﻞ ﺗﺸﺨﻴﺺ دﻫﻴﻢ ﻧﻴﺎز ﺑﻪ ﻳﻚ ﺳﺮي ﻣﺤﺎﺳﺒﺎت رﻳﺎﺿﻲ دارﻳﻢ.
ﺑﺮاي درك ﻋﻤﻠﻜﺮد اﻳﻦ اﻟﮕﻮرﻳﺘﻢ ،ﻣﺜﺎﻟﻲ را ﺗﺸﺮﻳﺢ ﻣﻴﻜﻨﻴﻢ .ﻣﺜﺎل ﺷﻜﻞ زﻳﺮ را در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ:
ﺑﺎ ﻛﺪﮔﺬاري اﻧﺘﻬﺎي ﺧﻂ ﻣﺸﺨﺺ ﻣﻴﺸﻮد ﺧﻂ ﺑﻪ ﻃﻮر ﻛﺎﻣﻞ داﺧﻞ ﻳﺎ ﺧﺎرج ﻣﺴﺘﻄﻴﻞ ﺑﺮش ﻗﺮار ﻧﺪارد و در ﺷﺮاﻳﻂ اول و
دوم ﺻﺪق ﻧﻤﻴﻜﻨﺪ ،ﺑﺮاي ﺑﺮش ﺧﻂ ﻧﻴﺎز ﺑﻪ ﻳﻚ ﺳﺮي ﻣﺤﺎﺳﺒﺎت رﻳﺎﺿﻲ دارﻳﻢ.
25 ﮔﺮاﻓﻴﻚ ﻛﺎﻣﭙﻴﻮﺗﺮي :ﭘﺮﻛﺮدن و ﺑﺮش اﺷﻜﺎل
ﺑﺮاي ﭘﻴﺪا ﻛﺮدن ﻧﻘﺎط ﺗﻘﺎﻃﻊ ﻣﻴﺘﻮان از ﻓﺮﻣﻮل ﺷﻴﺐ ﺧﻂ اﺳﺘﻔﺎده ﻛﺮد .ﺑﺮاي ﺧﻄﻲ ﺑﺎ ﻧﻘﺎط اﻧﺘﻬﺎﻳﻲ ) ( x1 , y1و ) ( x2 , y2
ﻓﺮﻣﻮل ﺧﻂ ﺑﻪ ﺻﻮرت زﻳﺮ اﺳﺖ:
) y = y1 + m( x − x1
ﻣﻘﺪار mﻛﻪ ﺑﺼﻮرت زﻳﺮ ﻣﺤﺎﺳﺒﻪ ﻣﻴﺸﻮد:
) m = ( y2 − y1 ) ( x2 − x1
ﻫﺮ ﻛﺠﺎ ﻣﻘﺪار xﺑﺮاﺑﺮ ﺑﺎ ﻳﻜﻲ از ﻣﻘﺎدﻳﺮ xwminﻳﺎ xwmaxﻗﺮار ﮔﻴﺮد ،آﻧﮕﺎه ﻣﻘﺪار ﻣﺘﻨﺎﻇﺮ ﺑﺎ yﺑﺪﺳﺖ ﻣﻴĤﻳﺪ .اﻳﻦ ﺷﺮط
ﻫﺎ در زﻳﺮ آورده ﺷﺪه اﺳﺖ .ﺑﺮاي ﻧﻘﺎط اﻧﺘﻬﺎﻳﻲ ﺷﺮاﻳﻂ زﻳﺮ را ﺑﺮرﺳﻲ ﻣﻴﻜﻨﻴﻢ.
x p ≥ xwmin else P′ : y = m.xwmin + b
x p ≤ xwmax else P′ : y = m.xwmax + b
y p ≥ ywmin else P′ : ywmin = m.x + b
y p ≤ ywmax else P′ : ywmax = m.x + b
اﺑﺘﺪا p1را ﺑﺎ ﭼﻬﺎر ﺿﻠﻊ ﻣﺴﺘﻄﻴﻞ ﺑﺮش ﻣﻘﺎﻳﺴﻪ ﻣﻴﻜﻨﻴﻢ .ﻧﺘﻴﺠﻪ ﻣﻴﮕﻴﺮﻳﻢ ﻛﻪ p1در ﭘﺎﻳﻴﻦ ﻣﺴﺘﻄﻴﻞ ﻗﺮار دارد .ﺑﻨﺎﺑﺮاﻳﻦ
p1′را ﻛﻪ ﻧﻘﻄﻪ ﺗﻘﺎﻃﻊ ﺧﻂ ﺑﺎ ﻣﺴﺘﻄﻴﻞ ﺑﺮش اﺳﺖ را ﭘﻴﺪا ﻣﻴﻜﻨﻴﻢ .اﻳﻦ ﻛﺎر ﺑﺮاي ﻧﻘﻄﻪ p2ﻧﻴﺰ اﻧﺠﺎم ﻣﻴﺸﻮد.ﻣﺰﻳﺖ اﻳﻦ
اﻟﮕﻮرﻳﺘﻢ ﻣﺤﺎﺳﺒﺎت ﻛﻢ و ﻋﻴﺐ آن ﻛﺎر ﻛﺮدن ﺗﻨﻬﺎ ﺑﺎ ﻧﺎﺣﻴﻪ ﺑﺮش ﻣﺴﺘﻄﻴﻞ ﺷﻜﻞ اﺳﺖ.
(3ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﻳﻨﻜﻪ ﺑﺮدار ﻫﺎي N Lو P (t ) − PLﺑﺮ ﻫﻢ ﻋﻤﻮدﻧﺪ دارﻳﻢ :
N L • ( P(t ) − PL ) = 0
(4ﻣﻘﺪار ) P (tرا در ﻓﺮﻣﻮل ﺑﺎﻻ ﺟﺎﻳﮕﺰﻳﻦ ﻣﻴﻜﻨﻴﻢ و ﺳﭙﺲ ﻣﻘﺪار tرا از آن ﺑﺼﻮرت زﻳﺮ ﺑﺪﺳﺖ ﻣﻲ آورﻳﻢ:
) N • ( P0 − PL
t= L
) − N L • ( P1 − P0
(5ﻣﻘﺪار tرا از راﺑﻄﻪ ﺑﺎﻻ ﺑﺮاي ﺗﻤﺎم ﻧﻘﺎط ﻣﺸﺘﺮك ﺧﻂ و ﻟﺒﻪ ﻫﺎي ﻣﺴﺘﻄﻴﻞ ﺑﺮش ﺑﺪﺳﺖ ﻣﻲ آورﻳﻢ.
(6ﺑﺮ اﺳﺎس ﻣﻘﺪار tدارﻳﻢ:
.aﺗﻤﺎم t < 0ﻳﺎ t > 1رد ﻣﻴﺸﻮﻧﺪ.
.bﻧﻘﺎط اﺷﺘﺮاﻛﻲ ﺑﺎﻗﻴﻤﺎﻧﺪه را رده ﺑﻨﺪي ﻣﻴﻜﻨﻴﻢ.
N L [ P1 − P0 ] < 0 .iﻧﻘﺎط ﻣﺴﺘﻌﺪ ﺑﺮاي داﺧﻞ ﺑﻮدن)(PE
N L [ P1 − P0 ] > 0 .iiﻧﻘﺎط ﻣﺴﺘﻌﺪ ﺑﺮاي ﺧﺎرج ﺑﻮدن)(PL
(7در اﻳﻦ ﻣﺮﺣﻠﻪ ﻛﻤﺘﺮﻳﻦ ﻣﻘﺪار PLو ﺑﻴﺸﺘﺮﻳﻦ ﻣﻘﺪار PEرا ﭘﻴﺪا و ﻣﻘﺪار tآﻧﻬﺎ را در ﻣﻌﺎدﻟﻪ ﭘﺎراﻣﺘﺮي ﺧﻂ
ﺟﺎﻳﮕﺰﻳﻦ ﻛﺮده و ﺧﻂ ﺑﻴﻦ ﻧﻘﺎط ﺣﺎﺻﻞ را ﺑﻪ ﻋﻨﻮان ﺑﺮﺷﻲ از ﺧﻂ اوﻟﻴﻪ رﺳﻢ ﻣﻴﻜﻨﻴﻢ.
27 27 ﮔﺮاﻓﻴﻚ ﻛﺎﻣﭙﻴﻮﺗﺮي :ﺗﺒﺪﻳﻼت ﻫﻨﺪﺳﻲ دو ﺑﻌﺪي و ﺳﻪ ﺑﻌﺪي
ﺗﺒﺪﻳﻼت اوﻟﻴﻪ
• اﻧﺘﻘﺎل
• دوران
• ﺗﻐﻴﻴﺮ ﻣﻘﻴﺎس
ﻣﺎﺗﺮﻳﺴﻬﺎي ﻫﻤﮕﻦ
ﺗﺒﺪﻳﻼت ﻣﺮﻛﺐ
ﺗﺒﺪﻳﻼت ﺳﻪ ﺑﻌﺪي
ﺳﺎﻳﺮ ﺗﺒﺪﻳﻼت
• ﺗﺒﺪﻳﻼت Shear
• ﺗﺒﺪﻳﻼت Affine
28 28 ﮔﺮاﻓﻴﻚ ﻛﺎﻣﭙﻴﻮﺗﺮي :ﺗﺒﺪﻳﻼت ﻫﻨﺪﺳﻲ دو ﺑﻌﺪي و ﺳﻪ ﺑﻌﺪي
ﺗﺒﺪﻳﻼت ﻫﻨﺪﺳﻲ ﻋﺒﺎرﺗﻨﺪ از ﺗﻐﻴﻴﺮ در ﻣﻮﻗﻌﻴﺖ ﻳﺎ ﺷﻜﻞ و ﻳﺎ اﻧﺪازه اﺷﻜﺎل و ﺗﺼﺎوﻳﺮ .ﺗﺒﺪﻳﻼت ﻫﻨﺪﺳﻲ اوﻟﻴﻪ ﻋﺒﺎرﺗﻨﺪ از :
اﻧﺘﻘﺎل ،دوران و ﺗﻐﻴﻴﺮ ﻣﻘﻴﺎس .ﺳﺎﻳﺮ ﺗﺒﺪﻳﻼﺗﻲ ﻛﻪ ﺑﻪ اﺷﻜﺎل اﻋﻤﺎل ﻣﻴﺸﻮﻧﺪ ﻋﺒﺎرﺗﻨﺪ از :اﻧﻌﻜﺎس و ﺗﺒﺪﻳﻼت . Shear
اﻧﺘﻘﺎل :
اﻧﺘﻘﺎل ﻳﻌﻨﻲ ﺣﺮﻛﺖ دادن ﻳﻚ ﺷﺊ در اﻣﺘﺪاد ﻳﻚ ﺧﻂ راﺳﺖ از ﻧﻘﻄﻪ اي ﺑﻪ ﻧﻘﻄﻪ دﻳﮕﺮ .ﺑﺮاي اﻧﺘﻘﺎل ﻳﻚ ﻧﻘﻄﻪ در
(
t x , t yرا ﺑﻪ ﻣﺨﺘﺼﺎت آن ﻧﻘﻄﻪ اﺿﺎﻓﻪ ﻛﻨﻴﻢ. ﻣﺨﺘﺼﺎت دو ﺑﻌﺪي ﻛﺎﻓﻴﺴﺖ ﻣﺨﺘﺼﺎت ﺑﺮدار اﻧﺘﻘﺎل )
x′ = x + t x , y′ = y + t y
ﺷﻜﻞ زﻳﺮ اﻧﺘﻘﺎل ﻧﻘﻄﻪ ﺗﻮﺳﻂ ﺑﺮدار اﻧﺘﻘﺎل ﻧﺸﺎن ﻣﻴﺪﻫﺪ :
دوران :
دوران در ﻣﺨﺘﺼﺎت دو ﺑﻌﺪي ﻳﻌﻨﻲ اﻧﺘﻘﺎل ﺷﺊ روي ﻳﻚ ﻣﺴﻴﺮ داﻳﺮه اي در ﺻﻔﺤﻪ . xyﺑﺮاي اﻧﺠﺎم ﻋﻤﻞ دوران ﺑﻪ دو
ﭘﺎراﻣﺘﺮ ﻧﻴﺎز دارﻳﻢ :اول زاوﻳﻪ ﭼﺮﺧﺶ و دوم ﻧﻘﻄﻪ ﻣﺤﻮري .اﺑﺘﺪا ﻣﻌﺎدﻻت دوران ﻳﻚ ﻧﻘﻄﻪ ﺣﻮل ﻣﺒﺪأ ﻣﺨﺘﺼﺎت را ﺑﺪﺳﺖ
ﻣﻲ آورﻳﻢ .ﺷﻜﻞ زﻳﺮ دوران ﻧﻘﻄﻪ ﺣﻮل ﻣﺒﺪأ ﻣﺨﺘﺼﺎت را ﻧﺸﺎن ﻣﻴﺪﻫﺪ.
ﻧﻜﺘﻪ : 1ﺟﺮﺧﺶ در ﺟﻬﺖ ﻋﻜﺲ ﺣﺮﻛﺖ ﻋﻘﺮﺑﻪ ﻫﺎي ﺳﺎﻋﺖ اﺳﺖ .
ﻧﻜﺘﻪ : 2واﺿﺢ اﺳﺖ ﻛﻪ دوران ﻳﻚ ﺗﺒﺪﻳﻞ ﺳﺨﺖ اﺳﺖ..
30 30 ﮔﺮاﻓﻴﻚ ﻛﺎﻣﭙﻴﻮﺗﺮي :ﺗﺒﺪﻳﻼت ﻫﻨﺪﺳﻲ دو ﺑﻌﺪي و ﺳﻪ ﺑﻌﺪي
ﺗﻐﻴﻴﺮ ﻣﻘﻴﺎس:
ﺗﻐﻴﻴﺮ ﻣﻘﻴﺎس ﺗﺒﺪﻳﻠﻲ اﺳﺖ ﻛﻪ اﻧﺪازه ﺗﺼﻮﻳﺮ را ﺗﻐﻴﻴﺮ ﻣﻴﺪﻫﺪ .ﺑﺮاي ﺗﻐﻴﻴﺮ اﻧﺪازه از ﺿﺮﻳﺐ ﻣﻘﻴﺎس اﺳﺘﻔﺎده ﻣﻴﺸﻮد.
x′ = x ⋅ s x , y′ = y ⋅ s y
ﻛﻪ در آن sxﺗﻐﻴﻴﺮ اﻧﺪازه روي ﻣﺤﻮر xو s yﺗﻐﻴﻴﺮ اﻧﺪازه روي ﻣﺤﻮر yﻣﻴﺒﺎﺷﺪ .اﻳﻦ ﻣﻌﺎدﻻت را ﻣﻴﺘﻮان ﺑﻪ ﺻﻮرت
ﻣﻌﺎدﻻت زﻳﺮ ﻧﻮﺷﺖ:
⎤⎡ x ⎤ ⎡ x′ ⎤ ⎡Sx 0
⎢ = p = ⎢ ⎥ , p′ = ⎢ ⎥ , S ⎥ ⇒ p′ = S . p
⎦⎣ y ⎦⎣ y′ ⎣ 0 S y ⎦
ﻣﻴﺘﻮان ﻫﺮ ﻣﻘﺪار ﻣﺜﺒﺘﻲ را ﺑﻪ ﺿﺮﻳﺐ ﻣﻘﻴﺎس ﻧﺴﺒﺖ داد .ﻣﻘﺎدﻳﺮ ﻛﻤﺘﺮ از ﻳﻚ ﻣﻮﺟﺐ ﻛﻮﭼﻚ ﺷﺪن و ﻣﻘﺎدﻳﺮ ﺑﻴﺸﺘﺮ از ﻳﻚ
ﻣﻮﺟﺐ ﺑﺰرﮔﺘﺮ ﺷﺪن ﺟﺴﻢ ﻣﻲ ﺷﻮد .اﮔﺮ ﺑﻪ ﻫﺮ دو ﻣﺆﻟﻔﻪ ي ﺿﺮﻳﺐ ﻣﻘﻴﺎس ،ﻣﻘﺪار ﻳﻚ داده ﺷﻮد ،در اﻳﻦ ﺻﻮرت ﺷﻜﻞ
ﺗﻐﻴﻴﺮ اﻧﺪازه ﻧﺨﻮاﻫﺪ داد.
ﺗﻐﻴﻴﺮ ﻣﻘﻴﺎس:
⎡ x′ ⎤ ⎡ S x 0 ⎤ 0⎤ ⎡ x
⎢ y′⎥ = ⎢ 0 sy ⎥⎥ 0⎥⎥ ⋅ ⎢⎢ y , P′ = S ( s x , s y ) ⋅ P
⎢ ⎥ ⎢
⎢⎣ 1 ⎥⎦ ⎢⎣ 0 0 ⎦⎥ 1 ⎥⎦ ⎢⎣ 1
31 31 ﮔﺮاﻓﻴﻚ ﻛﺎﻣﭙﻴﻮﺗﺮي :ﺗﺒﺪﻳﻼت ﻫﻨﺪﺳﻲ دو ﺑﻌﺪي و ﺳﻪ ﺑﻌﺪي
ﺗﺒﺪﻳﻼت ﻣﺮﻛﺐ
ﺑﺎ اﺳﺘﻔﺎده از ﻧﻤﺎﻳﺶ ﻣﺎﺗﺮﻳﺴﻲ ﻛﻪ در ﺑﺨﺶ ﻗﺒﻞ اراﺋﻪ ﺷﺪ ،ﻣﻴﺘﻮان ﺑﺮاي ﻫﺮ ﺗﺮﻛﻴﺒﻲ از ﺗﺒﺪﻳﻼت ﻳﻚ ﻣﺎﺗﺮﻳﺲ ﺗﺒﺪﻳﻞ ﻣﺮﻛﺐ
ﺑﻨﻮﻳﺴﻴﻢ .ﻣﺎﺗﺮﻳﺲ ﺣﺎﺻﻞ را ﻣﻌﻤﻮﻻً ﻣﺎﺗﺮﻳﺲ ﻣﺮﻛﺐ ﻳﺎ ﻣﺎﺗﺮﻳﺲ اﻟﺤﺎق ﻣﻲ ﻧﺎﻣﻨﺪ .ﺑﺮاي ﺑﺪﺳﺖ آوردن ﻣﺎﺗﺮﻳﺲ ﺗﺒﺪﻳﻞ ﻣﺮﻛﺐ،
ﻣﺎﺗﺮﻳﺴﻬﺎي ﺗﺒﺪﻳﻞ را از آﺧﺮ ﺑﻪ اول در ﻫﻢ ﺿﺮب ﻣﻴﻜﻨﻴﻢ.
و T2ﺑﻪ ﻳﻚ ﻧﻘﻄﻪ اﻋﻤﺎل ﺷﻮد ،ﻣﺎﺗﺮﻳﺲ ﺗﺒﺪﻳﻞ ﻣﺮﻛﺐ ﺑﻪ ﺻﻮرت زﻳﺮ ﺑﺪﺳﺖ ﻣﻲ آﻳﺪ. اﮔﺮ دو ﺗﺒﺪﻳﻞ اﻧﺘﻘﺎل T1
⎤ ⎡1 0 t x 2 ⎤ ⎡1 0 t x1 ⎤ ⎡1 0 t x1 + t x 2
⎥ ⎢0 1 t ⎥ ⋅ ⎢0 1 t ⎥ = ⎢0 1 t + t
⎢ ⎢ ⎥ y2 ⎥ y1 ⎢ y1 ⎥ y2
⎡ sx 2 0 0 ⎤ ⎡ sx1 0 0⎤ ⎡ sx1.sx 2 0 ⎤0
⎢0 sy2 0 ⎥⎥ ⋅ ⎢⎢ 0 s y1 0⎥⎥ = ⎢⎢ 0 s y1.s y 2 ⎥⎥ 0
⎢
⎢⎣ 0 0 1 ⎥⎦ ⎢⎣ 0 0 1 ⎥⎦ ⎢⎣ 0 0 ⎦⎥ 1
ﺑﻨﺎﺑﺮاﻳﻦ اﺑﺘﺪا ﻳﻚ اﻧﺘﻘﺎل در اﻣﺘﺪاد ﺑﺮدار ) (− xc , − ycﺳﭙﺲ ﻳﻚ دوران ﺑﻪ اﻧﺪازه θو در ﻧﻬﺎﻳﺖ ﻳﻚ اﻧﺘﻘﺎل دﻳﮕﺮ در
اﻣﺘﺪاد ﺑﺮدار ) . ( xc , ycﻟﺬا ﻣﺎﺗﺮﻳﺲ ﺗﺮﻛﻴﺐ ﺑﻪ ﺻﻮرت زﻳﺮ ﺑﺪﺳﺖ ﻣﻲ آﻳﺪ.
32 32 ﮔﺮاﻓﻴﻚ ﻛﺎﻣﭙﻴﻮﺗﺮي :ﺗﺒﺪﻳﻼت ﻫﻨﺪﺳﻲ دو ﺑﻌﺪي و ﺳﻪ ﺑﻌﺪي
⎡1 0 xr ⎤ ⎡cos θ − sin θ 0⎤ ⎡1 0 − xr ⎤ ⎡ cos θ − sin θ ⎤ xr (1 − cos θ ) + yr sin θ
⎢0 1 yr ⎥⎥ ⋅ ⎢⎢ sin θ cos θ 0 ⎥⎥ . ⎢⎢ 0 1 − yr ⎥⎥ = ⎢⎢ sin θ cos θ ⎥⎥ yr (1 − cos θ ) − xr sin θ
⎢
⎢⎣ 0 0 1 ⎥⎦ ⎢⎣ 0 0 1 ⎥⎦ ⎢⎣ 0 0 1 ⎥⎦ ⎢⎣ 0 0 1 ⎦⎥
ﺑﺮاي ﻋﻤﻞ ﺗﻐﻴﻴﺮ ﻣﻘﻴﺎس ﻧﻴﺰ ﻛﺎﻓﻴﺴﺖ ﻛﻪ ﻧﻘﻄﻪ را ﺑﻪ ﻣﺒﺪأ ﻣﺨﺘﺼﺎت اﻧﺘﻘﺎل و ﺳﭙﺲ ﻋﻤﻞ ﺗﻐﻴﻴﺮ ﻣﻘﻴﺎس را اﻧﺠﺎم دﻫﻴﻢ.
ﺗﺒﺪﻳﻼت : Shear
ﺗﺒﺪﻳﻼت Shearﺗﺼﻮﻳﺮ را در ﺟﻬﺘﻬﺎي ﻣﺸﺨﺺ ﺷﻴﻔﺖ ﻣﻴﺪﻫﻨﺪ .در واﻗﻊ اﻳﻦ ﺗﺒﺪﻳﻼت ﻧﻘﻄﻪ را ﺑﻪ ﻧﺴﺒﺖ ﻓﺎﺻﻠﻪ از ﻳﻚ ﺧﻂ
و ﻣﻮازي ﺑﺎ ﺧﻂ ﺣﺮﻛﺖ ﻣﻴﺪﻫﻨﺪ .ﻧﻘﺎط واﻗﻊ ﺑﺮ روي ﺧﻂ ﺷﻴﻔﺖ
داده ﻧﻤﻴﺸﻮد و ﻧﻘﺎﻃﻲ ﻛﻪ در ﻃﺮف ﻣﻘﺎﺑﻞ اﻧﺪ در ﺟﻬﺖ ﻣﺨﺎﻟﻒ
ﺷﻴﻔﺖ ﻣﻴﺎﺑﻨﺪ .ﺗﺒﺪﻳﻼت Shearﺷﺊ را دﮔﺮﮔﻮن ﻣﻴﻜﻨﻨﺪ اﻣﺎ ﺑﺎ اﻳﻦ
ﺣﺎل ﻣﻮازي ﺑﻮدن ﺧﻄﻮط را ﺣﻔﻆ ﻣﻴﻜﻨﻨﺪ .ﺷﻜﻞ روﺑﺮو ﻳﻚ ﻧﻤﻮﻧﻪ
از اﻳﻦ ﺗﺒﺪﻳﻞ را ﻧﺸﺎن ﻣﻴﺪﻫﺪ ﻛﻪ ﺑﺎ ﻣﻘﻴﺎس 1و ﻧﺴﺒﺖ ﺑﻪ ﺧﻂ
y = 2اﻧﺠﺎم ﺷﺪه اﺳﺖ.
ﻣﻌﻤﻮﻻً ﺷﻴﻔﺖ Shearدر ﺟﻬﺖ ﻣﺤﻮر xﻳﺎ yاﻧﺠﺎم ﻣﻴﺸﻮد .
ﺷﻴﻔﺖ Shearدر ﺟﻬﺖ ﻣﺤﻮر : xﻣﺎﺗﺮﻳﺲ زﻳﺮ ﻧﻘﺎط را ﺑﺎ
ﻣﻘﻴﺎس shxو ﺑﻪ ﻧﺴﺒﺖ ﻓﺎﺻﻠﻪ از ﺧﻂ y = yrefو ﻣﻮازي ﺑﺎ آن
ﺷﻴﻔﺖ ﻣﻴﺪﻫﺪ.
⎡1 shx ⎤ − shx ⋅ yref
⎢ ) ⎥ ⇒ ⎧ x′ = x + shx ( y − yref
⎢0 1 0 ⎨ ⎥ y′ = y
⎢⎣ 0 0 1 ⎩ ⎦⎥
ﺷﻴﻔﺖ Shearدر ﺟﻬﺖ ﻣﺤﻮر : yﻣﺎﺗﺮﻳﺲ زﻳﺮ ﻧﻘﺎط را ﺑﺎ ﻣﻘﻴﺎس shyو ﺑﻪ ﻧﺴﺒﺖ ﻓﺎﺻﻠﻪ از ﺧﻂ x = xrefو ﻣﻮازي ﺑﺎ
آن ﺷﻴﻔﺖ ﻣﻴﺪﻫﺪ.
⎡ 1 0 0 ⎤
⎢ sh ⎧ x′ = x
⎢ y ⎨ ⇒ ⎥⎥ 1 − shy ⋅ xref
) y′ = y + shy ( x − xref
⎢⎣ 0 0 1 ⎩ ⎦⎥
ﺗﺒﺪﻳﻼت : Affine
ﺗﺒﺪﻳﻼﺗﻲ ﻫﺴﺘﻨﺪ ﻛﻪ در آﻧﻬﺎ ﻣﻮازي ﺑﻮدن ﺧﻄﻮط ﺣﻔﻆ ﻣﻴﺸﻮد وﻟﻲ ﻃﻮل ﺧﻄﻮط ﺗﻐﻴﻴﺮ ﻧﻤﻲ ﻳﺎﺑﻨﺪ .ﻣﻌﺮوﻓﺘﺮﻳﻦ اﻳﻦ ﺗﺒﺪﻳﻼت
ﻋﺒﺎرﺗﻨﺪ از :اﻧﺘﻘﺎل ،دوران و ﺗﻐﻴﻴﺮ اﻧﺪازه .ﺑﺮاي اﻳﻦ ﺳﻪ ﺗﺒﺪﻳﻞ زواﻳﻪ ﺑﻴﻦ ﺧﻄﻮط ﺑﻌﺪ از ﺗﺒﺪﻳﻞ ﺗﻐﻴﻴﺮ ﻧﺨﻮاﻫﺪ ﻛﺮد.
ﺳﺆال :ﭼﻪ راﺑﻄﻪ اي ﺑﻴﻦ دوران ﺑﺎ زاوﻳﻪ θ = nπو ﻋﻤﻞ ﺗﻐﻴﻴﺮ ﻣﻘﻴﺎس در ﺣﺎﻟﺖ دوﺑﻌﺪي وﺟﻮد دارد ؟ ﺑﺎ اﺳﺘﻔﺎده از
رواﺑﻂ ﺟﺒﺮي ارﺗﺒﺎط ﻣﻮرد ﻧﻈﺮ را اﺛﺒﺎت ﻛﻨﻴﺪ.
⎡ cos θ − sin θ ⎤0 ⎡1 0 ⎤0
⎢ sin θ ⎥ ⎢ ⎧ sx = 1
⎢ cos θ θ = nπ , n = 2 k
0 ⎥ ⎯⎯⎯⎯→ ⎢0 1 ⎨ ⇒ ⎥⎥ 0
sy = 1
⎢⎣ 0 0 ⎦⎥ 1 ⎢⎣0 0 ⎩ ⎦⎥ 1
⎡ cos θ − sin θ ⎤0 ⎡ −1 ⎤0 0
⎢ ⎥ ⎧ sx = −1
⎢ sin θ cos θ θ = nπ , n = 2 k +1
⎯⎯⎯⎯⎯ ⎥ 0 → ⎢⎢ 0 ⎨ ⇒ ⎥⎥ −1 0
s y = −1
⎢⎣ 0 0 ⎦⎥ 1 ⎢⎣ 0 ⎩ ⎦⎥ 0 1
از ﺣﺎﻟﺖ اول ﻧﺘﻴﺠﻪ ﻣﻴﮕﻴﺮﻳﻢ ﻛﻪ دوران ﺑﺎ 2kπﻫﻴﭻ ﺗﻐﻴﻴﺮي در ﺷﻜﻞ ﻧﺪارد.
در ﺣﺎﻟﺖ دوم ﻧﻤﻴﺘﻮان راﺑﻄﻪ اي ﺑﻴﻦ ﺗﻐﻴﻴﺮ ﻣﻘﻴﺎس و دوران ﭘﻴﺪا ﻧﻤﻮد .ﭼﺮا ﻛﻪ ﻣﻮﻟﻔﻪ ﻫﺎي ﺗﻐﻴﻴﺮ ﻣﻘﻴﺎس ﻣﻨﻔﻲ ﻣﻴﺸﻮﻧﺪ.
35 ﮔﺮاﻓﻴﻚ ﻛﺎﻣﭙﻴﻮﺗﺮي :ﭘﺮدازش ﺗﺼﻮﻳﺮ
ﭘﺮدازش ﺗﺼﻮﻳﺮ
ﻣﺒﺎﺣﺚ اﻳﻦ ﻓﺼﻞ:
ﻣﻌﻤﻮﻻً ﭘﺮدازش ﺗﺼﻮﻳﺮ در ﺣﺎﻟﺖ دوﺑﻌﺪي و ﺳﻪ ﺑﻌﺪي ﻣﻮرد ﺑﺮرﺳﻲ ﻗﺮار ﻣﻴﮕﻴﺮد .ﻣﺤﺎﺳﺒﺎﺗﻲ ﻛﻪ در ﭘﺮدازش ﺗﺼﻮﻳﺮ ﻣﻮرد
ﻧﻴﺎزﻧﺪ ﻋﺒﺎرﺗﻨﺪ از ﻣﺤﺎﺳﺒﺎت ﻣﺮﺑﻮط ﺑﻪ ﻣﺎﺗﺮﻳﺴﻬﺎ و ﻫﻤﭽﻨﻴﻦ ﻣﺤﺎﺳﺒﺎت ﻣﺮﺑﻮط ﺑﻪ اﻧﺘﮕﺮاﻟﻬﺎ ﻛﻪ در ﺑﺤﺚ ﺑﻬﻴﻨﻪ ﺳﺎزي ﺗﺼﺎوﻳﺮ
اﺳﺘﻔﺎده ﻣﻴﺸﻮد.
ﻣﻬﻤﺘﺮﻳﻦ اﺟﺰاي ﻳﻚ ﺳﻴﺴﺘﻢ ﭘﺮدازش ﺗﺼﻮﻳﺮ ﻋﺒﺎرﺗﻨﺪ از :
وﺳﻴﻠﻪ اي ﺟﻬﺖ اﻧﺘﻘﺎل ﺗﺼﺎوﻳﺮ ﺑﻪ درون ﻛﺎﻣﭙﻴﻮﺗﺮ
ﺣﺎﻓﻈﻪ
ﻋﻤﻠﻴﺎت ﻛﻨﺘﺮل
ﻧﻤﺎﻳﺸﮕﺮ
ﻳﻚ ﭘﺮدازﺷﮕﺮ
ﺟﻬﺖ ﻣﻘﺎﻳﺴﻪ ﺗﺼﺎوﻳﺮ ﺑﺎﻳﺪ ﺑﺘﻮان ﺗﺼﺎوﻳﺮ را ﻣﺪل ﺳﺎزي ﻧﻤﻮد .ﺑﺮاي اﻳﻦ ﻛﺎر ﻳﻚ ﻣﺪل رﻳﺎﺿﻲ را از ﺗﺼﻮﻳﺮ اﻳﺠﺎد ﻣﻴﻜﻨﻴﻢ .ﺑﻪ
ﻃﻮر ﻛﻠﻲ ﺑﺮاي ﻣﺪل ﺳﺎزي ﻳﻚ ﺗﺼﻮﻳﺮ از راﺑﻄﻪ زﻳﺮ اﺳﺘﻔﺎده ﻣﻴﻜﻨﻴﻢ.
) f ( x, y ) = i ( x, y ) + r ( x, y
ﻛﻪ در آن ) f ( x, yو ) i ( x, yﺑﻴﻦ ﺻﻔﺮ و ﺑﻴﻨﻬﺎﻳﺖ ﻣﻴﺒﺎﺷﻨﺪ و ) r ( x, yﺑﻴﻦ ﺻﻔﺮ و ﻳﻚ اﺳﺖ.
ﺑﻨﺎﺑﺮاﻳﻦ ﺑﺮاي ﻣﺪﻟﺴﺎزي ﺑﺎﻳﺪ ﻫﺮ دو ﻗﺴﻤﺖ ) i ( x, yو ) r ( x, yﻣﺨﺎﻟﻒ ﺻﻔﺮ ﺑﺎﺷﻨﺪ .راﺑﻄﻪ ﻓﻮق ﻛﻪ راﺑﻄﻪ ﻣﺪﻟﺴﺎزي اﺳﺖ
ﺑﺎﻳﺪ ﺗﻌﻴﻴﻦ ﻛﻨﻨﺪه ﺑﺤﺚ ﻧﻤﻮﻧﻪ ﺑﺮداري از ﺗﺼﻮﻳﺮ و روﺷﻨﺎﻳﻲ ﻣﺮﺑﻮط ﺑﻪ ﺗﺼﻮﻳﺮ ﺑﺎﺷﺪ.
-1ﺗﺒﺪﻳﻞ ﻓﻮرﻳﻪ :
ﺗﺒﺪﻳﻞ ﻓﻮرﻳﻪ ﮔﺴﺴﺘﻪ f (ω ) = ∫ f (t )e − jωt dt :
∞
ﺗﺒﺪﻳﻞ ﻓﻮرﻳﻪ ﭘﻴﻮﺳﺘﻪ f (ω ) = ∑ f ( n)e − jω n :
n=2
-2ﺗﺒﺪﻳﻞ : Waveletﻣﺎﻧﻨﺪ ﻓﻮرﻳﻪ اﺳﺖ ﺑﺎ اﻳﻦ ﺗﻔﺎوت ﻛﻪ ﺑﺠﺎي ﺗﺎﺑﻊ e − jω nﻣﻴﺘﻮان از ﺗﻮاﺑﻊ دﻳﮕﺮ ﻣﺜﻞ
) cos(ω nاﺳﺘﻔﺎده ﻧﻤﻮد .ﻛﺎرﺑﺮد اﻳﻦ ﺗﺒﺪﻳﻞ در ﻓﺸﺮده ﺳﺎزي اﺳﺖ.
-3ﺗﺒﺪﻳﻞ :Sin-convolationدر اﻳﻦ روش اﻧﺘﮕﺮال ﺑﻪ ﺻﻮرت دو ﺑﻌﺪي و ﺳﻪ ﺑﻌﺪي ﺗﺨﻤﻴﻦ زده ﻣﻴﺸﻮد .و
اﻃﻼﻋﺎت ﻣﺮﺑﻮﻃﻪ ﺑﻪ ﺻﻮرت ﻣﺴﺘﻘﻴﻢ در ﺣﺎﻓﻈﻪ ﺑﻪ روش ﻣﺎﺗﺮﻳﺴﻲ ذﺧﻴﺮه ﻣﻴﺸﻮد.
37 ﮔﺮاﻓﻴﻚ ﻛﺎﻣﭙﻴﻮﺗﺮي :ﭘﺮدازش ﺗﺼﻮﻳﺮ
ﺑﻌﺪ از ﻣﺪﻟﺴﺎزي ﻛﻪ ﺗﺎﺑﻊ ) f ( x, yﺗﻮﻟﻴﺪ ﺷﺪ ،ﻣﻮﻟﻔﻪ ) i ( x, yدر واﻗﻊ ﺗﻌﻴﻴﻦ ﻛﻨﻨﺪه ﻣﻴﺰان ﻧﻮر ﺧﺎرج ﺷﺪه از ﻣﻨﺒﻊ اﺳﺖ و
) r ( x, yﻣﻴﺰان ﻧﻮر ﻣﻨﻌﻜﺲ ﺷﺪه از ﺟﺴﻢ را ﻧﺸﺎن ﻣﻴﺪﻫﺪ .ﺑﻄﻮر ﻛﻠﻲ ﺗﺎﺑﻊ ﻳﻚ ﺗﺎﺑﻊ ﭘﻴﻮﺳﺘﻪ اﺳﺖ و ﺑﺮاي ﺗﺒﺪﻳﻞ اﻳﻦ ﺗﺎﺑﻊ
ﺑﻪ ﮔﺴﺴﺘﻪ ﻳﺎ دﻳﺠﻴﺘﺎل از ﻣﺮاﺣﻞ ﻧﻤﻮﻧﻪ ﺑﺮداري ) (Samplingو ﻛﻮاﻧﺘﻮﻣﻲ ﻛﺮدن ) (Quantizationاﺳﺘﻔﺎده ﻣﻴﺸﻮد.
ﻣﻨﻈﻮر از ﻧﻤﻮﻧﻪ ﺑﺮداري اﻳﻦ اﺳﺖ ﻛﻪ ﺑﺎ ﻳﻚ ﺑﺎزه زﻣﺎﻧﻲ ﺧﺎص ﺑﺘﻮان ﺑﻪ ﻃﻮر ﺗﻜﺮاري ﻣﻘﺎدﻳﺮي را از ﺗﺎﺑﻊ ﭘﻴﻮﺳﺘﻪ اﻧﺪازه ﮔﻴﺮي
ﻧﻤﻮد .ﻧﻤﻮﻧﻪ ﻫﺎي ﻧﺒﺎﻳﺪ از ﻳﻜﺪﻳﮕﺮ ﺧﻴﻠﻲ ﻓﺎﺻﻠﻪ داﺷﺘﻪ ﺑﺎﺷﻨﺪ ،زﻳﺮا در اﻳﻦ ﺻﻮرت ﺗﻌﺪاد ﻧﻤﻮﻧﻪ ﻫﺎ ﻛﻢ و ﻣﻤﻜﻦ اﺳﺖ در ﻛﺎر
ﺳﻴﺴﺘﻢ اﺧﺘﻼل اﻳﺠﺎد ﺷﻮد .ﻫﻤﭽﻨﻴﻦ اﮔﺮ ﺗﻌﺪاد ﻧﻤﻮﻧﻪ ﻫﺎ زﻳﺎد ﺑﺎﺷﺪ ،ﻧﻴﺎز دارﻳﻢ ﻛﻪ ﺣﺠﻢ زﻳﺎدي از ﻧﻤﻮﻧﻪ ﻫﺎي را ﻧﮕﻬﺪاري
ﻛﻨﻴﻢ ﻛﻪ ﻣﺸﻜﻼﺗﻲ را ﺑﺮاي ﺣﺎﻓﻈﻪ اﻳﺠﺎد ﺧﻮاﻫﺪ ﻛﺮد .ﺑﻨﺎﺑﺮاﻳﻦ ﻓﺮﻛﺎﻧﺲ ﻧﻤﻮﻧﻪ ﮔﻴﺮي ﺑﺎﻳﺪ ﻣﺘﻌﺎدل ﺑﺎﺷﺪ.
ﻣﻨﻈﻮر از ﻣﺮﺣﻠﻪ ﻛﻮاﻧﺘﻮﻣﻲ ﻛﺮدن اﻳﻦ اﺳﺖ ﻛﻪ ﺑﺘﻮان ﻧﺘﺎﻳﺞ ﺑﺪﺳﺖ آﻣﺪه از ﻣﺮﺣﻠﻪ ﻧﻤﻮﻧﻪ ﺑﺮداري را ﺑﻪ ﻣﻘﺎدﻳﺮ ﺑﺎﻻﺗﺮ ﮔﺮد
ﻧﻤﻮد.
ﺗﻜﻨﻴﻚ ﻫﺎي ﻧﻤﻮﻧﻪ ﺑﺮداري:
روش : Non-Uniform روش : Uniform
در اﻳﻦ روش ﺗﻤﺎﻣﻲ ﻣﺨﺘﺼﺎت ﺗﺎﺑﻊ ) f ( x, yﺑﺼﻮرت در اﻳﻦ روش m, nرا ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﭘﻴﭽﻴﺪﮔﻲ ﺗﺼﻮﻳﺮ ﺗﻐﻴﻴﺮ
ﻧﻘﻄﻪ در ﻧﻈﺮ ﮔﺮﻓﺘﻪ و آﻧﻬﺎ را در ﻳﻚ ﻣﺎﺗﺮﻳﺲ m × nﻣﻴﺪﻫﻴﻢ .ﻳﻌﻨﻲ m, nدر ﻫﺮ ﻗﺴﻤﺖ از ﺗﺼﻮﻳﺮ ﻣﻘﺎدﻳﺮ
ذﺧﻴﺮه ﻣﻴﻜﻨﻴﻢ .ﻫﺮ ﭼﻪ ﺗﻌﺪاد ﻧﻤﻮﻧﻪ ﻫﺎ ﺑﻴﺸﺘﺮ ﺑﺎﺷﺪ ،دﻗﺖ ﻣﺘﻔﺎوﺗﻲ ﺧﻮاﻫﺪ داﺷﺖ.
ﻧﻤﻮﻧﻪ ﺑﺮداري ﺑﻴﺸﺘﺮ ﺧﻮاﻫﺪ ﺑﻮد .و ﺑﻄﻮر ﻛﻠﻲ ﻫﺮ ﭼﻪ m, nدر ﻫﺮ ﻛﺠﺎ ﻛﻴﻔﻴﺖ ﺑﻴﺸﺘﺮ ﺑﺎﺷﺪ m, n ،ﺑﻴﺸﺘﺮ ﺧﻮاﻫﺪ ﺑﻮد.
ﺑﻴﺸﺘﺮ ﺷﻮد ﻛﻴﻔﻴﺖ ﺗﺼﻮﻳﺮ ﺑﻴﺸﺘﺮ ﺧﻮاﻫﺪ ﺷﺪ.
ﻣﻬﻤﺘﺮﻳﻦ اﻫﺪاف ﻛﺪﮔﺬاري ﺗﺼﻮﻳﺮ ﻋﺒﺎرﺗﻨﺪ از ﺣﺠﻢ ﻛﻮﭼﻜﺘﺮ و اﻣﻨﻴﺖ ﺑﺎﻻﺗﺮ در ﻫﻨﮕﺎم اﻧﺘﻘﺎل داده ﻫﺎ .ﺑﻄﻮر ﻛﻠﻲ داده
دﻳﺠﻴﺘﺎل ﻣﻴﺘﻮاﻧﺪ ﻛﺪﮔﺬاري ﺷﻮد و در واﻗﻊ ﻋﻼوه ﺑﺮ ﻛﺪﮔﺬاري ﻗﺎﺑﻠﻴﺖ ﻓﺸﺮده ﺳﺎزي را ﻧﻴﺰ دارد .اﻣﺎ داده آﻧﺎﻟﻮگ ﻗﺎﺑﻠﻴﺖ
ﻛﺪﮔﺬاري و ﻗﺎﺑﻠﻴﺖ ﻓﺸﺮده ﺳﺎزي را ﻧﺪارد.
: BMPﻓﺎﻳﻠﻬﺎي ﭘﺮدازش ﻧﺸﺪه ﺑﺎ ﺣﺠﻢ ﺑﺎﻻ
: GIFﺗﻌﺪاد رﻧﮓ ﻫﺎ ﻓﺸﺮده ﺳﺎزي ﺷﺪه اﺳﺖ.
: JPGﻣﻘﺪار رﻧﮓ و ﺟﺰﺋﻴﺎت ﻓﺸﺮده ﺳﺎزي ﺷﺪه اﺳﺖ.
در ﻛﺪﮔﺬازي ،ﺗﺼﻮﻳﺮ ﺑﻪ ﻳﻚ ﺗﺼﻮﻳﺮ ﺟﺪﻳﺪ ﺗﺒﺪﻳﻞ ﻣﻴﺸﻮد ﻛﻪ ﻣﻌﻤﻮﻻً ﻛﻴﻔﻴﺖ ﺗﺼﻮﻳﺮ ﺟﺪﻳﺪ را ﻧﺨﻮاﻫﺪ داﺷﺖ .روش ﻫﺎي
ﻣﺨﺘﻠﻒ ﻛﺪﮔﺬاري در ﺟﺪول زﻳﺮ آورده ﺷﺪه اﻧﺪ.
روﺷﻬﺎي ﻛﺪﮔﺬاري داده ﻫﺎ
در اﻳﻦ روش ﻳﻚ ﻣﺎﺗﺮﻳﺲ ،ﻣﻌﺎدل ﺗﺼﻮﻳﺮ ﻣﺮﺑﻮﻃﻪ اﻳﺠﺎد ﻣﻴﮕﺮدد و ﺟﺎﺑﺠﺎﻳﻲ ﺑﻴﻦ ﻧﻘﺎط روش ﻛﺪﮔﺬاري ﻣﺎﺗﺮﻳﺲ
ﻣﺎﺗﺮﻳﺲ ﻛﻪ در واﻗﻊ ﻧﻘﺎط ﺗﺼﻮﻳﺮ ﻫﺴﺘﻨﺪ ﺑﺮ اﺳﺎس اﻟﮕﻮرﻳﺘﻤﻲ ﺧﺎص ﺻﻮرت ﻣﻲ ﮔﻴﺮد.
اﺳﺘﻔﺎده از اﻳﻦ روش ﻣﻮﺟﺐ ﻣﻴﺸﻮد ﺗﺼﻮﻳﺮ ﻛﺪﺷﺪه ﺑﺎ ﺗﺼﻮﻳﺮ اوﻟﻴﻪ ﺗﻔﺎوت ﭘﻴﺪا ﻛﻨﺪ .اﻣﺎ
ﺗﺄﺛﻴﺮي ﺑﺮ روي ﺣﺠﻢ داده ﻫﺎي ذﺧﻴﺮه ﺷﺪه و ﻋﻤﻞ ﻓﺸﺮده ﺳﺎزي ﻧﺨﻮاﻫﺪ داﺷﺖ .ﻣﺰﻳﺖ
اﻳﻦ روش ﺳﺎدﮔﻲ و ﻋﻴﺐ آن دﻗﺖ ﭘﺎﻳﻴﻦ آن اﺳﺖ.
در اﻳﻦ روش ﺗﻐﻴﻴﺮات رﻧﮓ ﺑﺮاي ﻫﺮ ﭘﻴﻜﺴﻞ ﻧﺴﺒﺖ ﺑﻪ ﻳﻚ ﻣﻘﺪار ﭘﺎﻳﻪ ذﺧﻴﺮه ﻣﻴﮕﺮدد. روش PCM
ﻫﺪف اﻳﻦ روش ﻓﺸﺮده ﺳﺎزي و ﻋﻴﺐ آن ﻣﺸﻜﻞ ﺑﻮدن ﻳﺎﻓﺘﻦ ﻣﻘﺪار ﭘﺎﻳﻪ اﺳﺖ.
ﻫﺪف اﻳﻦ روش ﺑﻬﻴﻨﻪ ﺳﺎزي ﻃﻮل ﻛﺪ ﻣﻮردﻧﻈﺮ اﺳﺖ .ﺑﻪ اﻳﻦ ﺻﻮرت ﻛﻪ اﮔﺮ ﻳﻚ روش ﻫﺎﻓﻤﻦ
38 ﮔﺮاﻓﻴﻚ ﻛﺎﻣﭙﻴﻮﺗﺮي :ﭘﺮدازش ﺗﺼﻮﻳﺮ
ﺣﺮف ﺗﻌﺪاد ﺗﻜﺮار ﻛﻤﺘﺮي داﺷﺘﻪ ﺑﺎﺷﺪ ،ﻃﻮل ﻛﺪ اﺧﺘﺼﺎص ﻳﺎﻓﺘﻪ ﺑﻪ آن ﻛﻤﺘﺮ اﺳﺖ.
اﻳﻦ روش ﻣﺎﻧﻨﺪ روش ﻫﺎﻓﻤﻦ اﺳﺖ .و ﻟﻲ ﺑﻬﺘﺮ از آن ﻋﻤﻞ ﻣﺒﻜﻨﺪ. روش Entropy
اﺳﺎس اﻳﻦ روش ﺑﺮ اﻳﻦ اﺳﺖ ﻛﻪ ﭘﻴﻜﺴﻠﻬﺎي ﻫﻤﺴﺎﻳﻪ داراي رﻧﮓ ﻣﺸﺎﺑﻪ اﻧﺪ .اﻳﻦ روش روش Ran length
ﻧﺴﺒﺖ ﺑﻪ روش اول ﻛﻼﺳﻴﻚ ﺗﺮ اﺳﺖ .ﻣﻨﻈﻮر از ﭘﻴﻜﺴﻠﻬﺎي ﻫﻤﺴﺎﻳﻪ ﭘﻴﻜﺴﻠﻬﺎﻳﻲ ﻫﺴﺘﻨﺪ ﻛﻪ
ﻓﺎﺻﻠﻪ آﻧﻬﺎ ﺗﺎ ﻧﻘﻄﻪ ﻣﻮرد ﻧﻈﺮ ﻳﻚ واﺣﺪ اﺳﺖ .در اﻳﻦ روش ﺑﻪ ﺟﺎي ذﺧﻴﺮه ﺳﺎزي
ﻣﺨﺘﺼﺎت ) f ( x, yﻣﻴﺘﻮان ﻓﺎﺻﻠﻪ ﺑﻴﻦ ﻣﻜﺎﻧﻬﺎ را ﻛﻪ ﻣﻌﻤﻮﻻً ﻋﺪدي ﺛﺎﺑﺖ اﺳﺖ ذﺧﻴﺮه
ﻧﻤﻮد .ﻋﻴﺐ اﻳﻦ روش اﻳﻦ اﺳﺖ ﻛﻪ ﺣﺠﻢ داده ﻛﺪ ﺷﺪه ﺑﻪ ﭘﻴﭽﻴﺪﮔﻲ ﺗﺼﻮﻳﺮ واﺑﺴﺘﻪ اﺳﺖ و
ﻣﻤﻜﻦ اﺳﺖ ﺣﺠﻢ را ﺧﻴﻠﻲ ﻛﻢ ﻧﻜﻨﺪ .ﺑﻄﻮر ﻛﻠﻲ ﺑﺮاي ﺗﺼﺎوﻳﺮ ﺳﺎده ﺧﻮب اﺳﺖ ،اﻣﺎ ﺑﺮاي
ﺗﺼﺎوﻳﺮ ﭘﻴﭽﻴﺪه ﺑﻪ ﺧﻮﺑﻲ ﻋﻤﻞ ﻧﻤﻴﻜﻨﺪ.
روش Two symbol
ﻓﺸﺮده ﺳﺎزي:
ﻫﺪف از ﻓﺸﺮده ﺳﺎزي ﺣﺠﻢ داده ﻛﻤﺘﺮ و ﻫﻤﭽﻨﻴﻦ ﻣﺤﺎﺳﺒﺎت ﻛﻤﺘﺮ اﺳﺖ .روش ﻫﺎي ﻓﺸﺮده ﺳﺎزي در ﺟﺪول زﻳﺮآﻣﺪه اﻧﺪ.
روﺷﻬﺎي ﻓﺸﺮده ﺳﺎزي
اﻳﻦ روش ﺑﺮ روي ﺗﺎﺑﻊ ) f ( x, yاﻧﺠﺎم ﻣﻴﺸﻮد و ﻃﻮري ﺑﺮ روي ﺗﺎﺑﻊ ﻋﻤﻞ ﻓﺸﺮده ﺳﺎزي ﺑﺮ اﺳﺎس ﻣﺪل ﺗﺼﻮﻳﺮ
ﻣﻴﻜﻨﺪ ﻛﻪ ﺧﺮوﺟﻲ اﻳﻦ ﺗﺎﺑﻊ ﻫﻨﮕﺎم ﭘﻴﺎده ﺳﺎزي ﺗﻌﺪاد ﺑﻴﺖ ﻛﻤﺘﺮي را ﺷﺎﻣﻞ
ﺷﻮد .درﺻﺪ ﻓﺸﺮده ﺳﺎزي اﻳﻦ روش ﻧﺴﺒﺘﺎً ﻛﻢ اﺳﺖ.
اﻳﻦ روش از ﺗﻘﺮﻳﺐ زدن ﻣﺜﻼً ﺗﻘﺮﻳﺐ ﻫﺮ ﻗﺴﻤﺖ ﺷﻜﻞ ﻳﺎ ﺗﺼﻮﻳﺮ ﺑﺎ ﺧﻂ ﻓﺸﺮده ﺳﺎزي ﺑﺮ اﺳﺎس ﺗﻘﺮﻳﺐ
اﺳﺘﻔﺎده ﻣﻲ ﻧﻤﺎﻳﺪ .ﻣﻌﻤﻮﻻً ﻃﻮل ﻫﺮ ﺧﻂ ﺑﻪ ﻫﻤﺮاه ﻧﻘﺎط اﺑﺘﺪاﻳﻲ و اﻧﺘﻬﺎﻳﻲ
ذﺧﻴﺮه ﻣﻴﺸﻮد.
در اﻳﻦ روش ﺗﺼﻮﻳﺮ ﺑﻪ ﺑﺨﺶ ﻫﺎﻳﻲ ﺗﻘﺴﻴﻢ ﻣﻴﺸﻮد و ﺳﭙﺲ ﻋﻤﻞ ﻓﺸﺮده روش : Fractal
ﺳﺎزي ﺑﺮ روي ﻫﺮ ﺑﺨﺶ اﻧﺠﺎم ﻣﻴﺸﻮد .ﻛﻴﻔﻴﺖ ﻓﺸﺮده ﺳﺎزي در اﻳﻦ روش
ﻧﺴﺒﺖ ﺑﻪ ﺣﺎﻻت ﻗﺒﻠﻲ ﺑﻬﺘﺮ اﺳﺖ.
در اﻳﻦ روش از روي ﺗﺎﺑﻊ اﺻﻠﻲ ﻋﻤﻞ ﻧﻤﻮﻧﻪ ﺑﺮداري را ﺑﺎ ﺳﺮﻋﺖ ﻛﻢ اﻧﺠﺎم ﻓﺸﺮده ﺳﺎزي ﺑﺼﻮرت ﮔﺴﺴﺘﻪ
ﻣﻴﺪﻫﻴﻢ .در ﻧﺘﻴﺠﻪ ﺧﺮوﺟﻲ ﻋﻤﻞ ﻧﻤﻮﻧﻪ ﺑﺮداري ﺑﺎﻋﺚ ﻣﻴﺸﻮد ﻛﻪ ﺗﺼﻮﻳﺮ
ﺑﺪﺳﺖ آﻣﺪه داراي ﺣﺠﻢ ﻛﻤﺘﺮي ﺑﺎﺷﺪ .ﺑﺎﻳﺪ دﻗﺖ ﻧﻤﻮد ،اﮔﺮ ﺳﺮﻋﺖ ﻧﻤﻮﻧﻪ
ﺑﺮداري ﺧﻴﻠﻲ ﻛﻢ ﺷﻮد ،ﻛﻴﻔﻴﺖ ﺗﺼﻮﻳﺮ ﻛﺎﻫﺶ ﻣﻲ ﻳﺎﺑﺪ.
در اﻳﻦ روش از ﻓﻴﻠﺘﺮ ﻫﺎ اﺳﺘﻔﺎده ﻣﻴﺸﻮد .ﺗﺼﻮﻳﺮي ﻛﻪ از ﻳﻚ ﻓﻴﻠﺘﺮ ﻋﺒﻮر ﻓﺸﺮده ﺳﺎزي ﺑﺎ اﺳﺘﻔﺎده از ﺗﺒﺪﻳﻼت
ﻣﻴﻜﻨﺪ از ﻧﻈﺮ وﻳﮋﮔﻴﻬﺎ ﺑﺎ ﺗﺼﻮﻳﺮ اوﻟﻴﻪ ﻣﺘﻔﺎوت اﺳﺖ .ﻓﻴﻠﺘﺮﻫﺎ ﺑﺮ دو ﻧﻮع ﺧﻄﻲ و
ﻏﻴﺮﺧﻄﻲ ﻣﻴﺒﺎﺷﻨﺪ.