tìm hiểu về các nguyên thể trong đồ hoạ

130 494 0
tìm hiểu về các nguyên thể trong đồ hoạ

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Một số ứng dụng đồ họa trong không gian Chương I : TìM HIểU về các nguyên thể trong đồ hoạ Hình ảnh được cÂu thành từ các nguyên thể cơ bản như điểm ảnh , đường thẳng ,độ sáng ,màu sắc … 1 . Điểm : 1.1 Kh¸i niÖm : Điểm là đơn vị nhỏ nhất trong chế độ đồ hoạ . Các chương trình đòi hỏi độ chính xác và thẩm mü cao đều phảI truy xuất đến từng điểm ảnh . 1.2 . Thñ tôc vÏ mét ®iÓm : Xây dựng trên cơ sở thủ tục vẽ một đoạn thẳng với hai đầu mót trùng nhau . • Thủ tục Putpixel ( x,y :integer ; color : word) vẽ một ®iªmt tại toạ độ (x,y) và chỉ số màu là color trên màn hình . • Thủ tục GetPixel ( x,y :integer ) trả về chỉ số màu của điểm ảnh tại toạ (x,y) . • moveto ( x,y :integer ) : chuyển con trỏ đồ hoạ tới toạ độ x,y . 2 . Đường thẳng : 2.1. Định nghĩa : Đường thẳng là nguyên thể nhỏ nhất trên thực tế . Đường thẳng là tập hợp các điểm lân cận nhau một khoảng cách nhất định theo một phương nào đó. 2.2. Một số thủ tục vẽ đường thẳng : • Thủ tục Line (x,y,x 1 ,y 1 ) : vẽ một đường thẳng từ (x,y) đến ( x 1 , y 1 ) • Thủ tục Lineto (x,y) : vẽ đoạn thẳng từ vị trí con trỏ đến điểm ( x,y) . • Thủ tục Linerel (D x , D y ) : nối đoạn thẳng từ vị trí con trỏ hiện hành đến điểm có toạ độ cách đó một khoảng D x , D y . Với D x dương : bên phải ; D y dương : dưới màn hình . Đề tài thực tập tốt nghiệp 1 Một số ứng dụng đồ họa trong không gian 3. Cửa sổ đồ hoạ ( Viewport ) : Ta đang xét hình ảnh trong không gian thực ,hình ảnh sẽ có các toạ độ điểm với giá trị nguyên (dương hoặc âm) .Điểm ảnh nằm góc trên ,bên tráI màn hình có toạ độ (0,0). Toạ độ cột mang giá trị dương khi tiến sang phải ,toạ độ dong mang giá trị dương khi tiến về phía dưới .Do giới hạn của màn hình ta chỉ nhìn thấy một phần trong toàn bộ mặt phẳng các điểm ảnh .Khi xử lÝ ảnh rõ ràng là không phảI khi nào ta cũng cần bao quát và không thể bao quát một vïg lớn như vậy.Thường ta chia ảnh ra nhiều vùng hình chữ nhật và khảo sát hình ảnh trong đó .Một cửa sổ được xác định bởi hai đầu mót đường chéo chính của hình chữ nhật,ta gọi đó là hai điểm có toạ độ (x 1 ,y 1 )và (x 2 ,y 2 ). Ta sẽ xây dựng thủ tục để xác định cửa sổ nh sau: Cua so(x 1 ,y 1 ,x 2 ,y 2 :real) Trong đó : + x 1 :là hoành độ nhỏ nhất + x 2 :là hoành độ lớn nhất +y 1 : là tung độ nhỏ nhất +y 2 : là tung độ lớn nhất Không gian người dùng (x 2 ,y 2 ) (x 1 ,y 1 ) Các tham số trên có thể là trị ,biến hoặc biểu thức và thoả mãn đồng thời x 1 <x 2 ,y 1 <y 2 Đề tài thực tập tốt nghiệp 2 Cửa sổ Một số ứng dụng đồ họa trong không gian Vd:Bốn tham biến này có thể là : +Hằng :cua so(-10,10,2.5,15) +Biến :cua so(A,B,C,D) +Biểu thức :cua so (A+10,B-10,C+20,D+10) 4.Tầm nhìn Hình ảnh mà ta đang khảo sát trên cửa sổ phải được thể hiện lên màn hình máy tính .Giả sử ta thể hiện nội dung của nó lên một vùng hình chữ nhật của màn hình.Ta gọi vùng màn hình này là tầm nhìn người xử lÝ. Ta sẽ xây dựng một thủ tục để xác định tầm nhìn như sau: Tầm nhìn (x 3 ,x 4 ,y 3 ,y 4 :integer) Trong đó : Các tham biến là toạ độ các điểm xác định vùng hình chữ nhËtcña tầm nhìn ,toạ độ này là toạ độ màn hình với trục y quay lên. +x 3 :là hoành độ nhỏ nhất +x 4 :là hoành độ lớn nhất +y 3 : là tung độ nhỏ nhất +y 4 : là tung độ lớn nhất 479 Màn hình VGA Cửa sổ (x 2 ,y 2 ) (x 1 ,y 1 ) (0,0) 639 Với 0 <= x 3 < x 4 <= getmax X ( giá trị lớn nhất của X ) 0 <= y 3 < y 4 <= getmax Y ( giá trị lớn nhất của Y ) Đề tài thực tập tốt nghiệp 3 Một số ứng dụng đồ họa trong không gian 5 . Mối quan hệ giữa tầm nhìn và cửa sổ : 5.1 . Chiếu cửa sổ lên tầm nhìn . Muốn thể hiện một điểm ảnh trong cửa sổ lên tầm nhìn ta phải xác định được công thức để chuyển toạ độ của điểm đó trong không gian thực sang toạ độ màn hình . Ta quan sát màn hình dưới đây thể hiện phép chiếu một điểm ( x o , y o ) trên cửa sổ lên điểm ( x o , y o ) trên tầm nhìn lưu ý rằng ta định nghĩa hệ toạ độ trên tầm nhìn là hệ toạ độ với trục tung y quay lên còn toạ độ màn hình có chiều trục tung y quay xuống . Trước hết cần tính tư lệ thu phóng trên trục x và trục y • x tl = ( x 4 – x 3 ) / ( x 2 – x 1 ) • y tl = (y 4 - y 3 ) / (y 2 - y 1 ) • x e = ( x 6 – x 1 ) x X tl • y e = (y 6 – y 1 ) x Y tl • Trong đó : x 1 , y 1 : hoành độ ,tung độ nhỏ nhất của cửa sổ X 2 ,y 2 : hoành độ , tung độ lớn nhất của cửa sổ X 3 , y 3 : hoành độ , tung độ nhỏ nhất của tầm nhìn X 4 , y 4 : hoành độ , tung độ lớn nhất của tầm nhìn 5.2 . Nhiễu hình :Khi chiếu cửa sổ lên tầm nhìn các hình ảnh không còn giữ nguyên được hình dạng ban đầu ,hình bị méo do tư lệ giữa đáy / chiều cao của tầm nhìn và đáy /chiều cao của cửa sổ . Không bị nhiễu hình : D/ H = D’ / H ’ Khi bị nhiễu hình : D / H <> D’ / H’ Đề tài thực tập tốt nghiệp 4 Một số ứng dụng đồ họa trong không gian Trong đó : D : đáy ; H : chiều cao của cửa sổ D’ : đáy tầm nhìn ; H’ :chiều cao tầm nhìn Khi D, H là tầm nhìn cố định , với tầm nhìn khách nhau thì tầm nhìn khác nhau thì dẫn đến nhiễu hình hoặc không nhiễu hình . VD : Vẽ đường tròn có bán kính R= 4 trên cửa sổ D= 4 , H=4 + Trên tầm nhìn (2,3,4,5) thì ta có D’ =1 ; H’=1 ; D/H= D’/H’ = 1/1 Không bị nhiễu hình + Trên tầm nhìn (1,1,8,3 ) ta có D’ =7, H’= 2 ; D’/H ’ = 7/2 mà D/H =6/6 D/H <> D’/H’ nên hình bị nhiễu ,có dạng : Bị nhiễu hình + Trên tầm nhìn (1,3,4,7 ) ta có D’= 3 ; H’=4 ; D’/H’ =3/4 mà D/H = 6/6 D’/H’ <> D/H nên hình bị nhiễu ,có dạng : Đề tài thực tập tốt nghiệp 5 Một số ứng dụng đồ họa trong không gian Bị nhiễu hình 5 .3 . Thu , phóng hình : Giả sử ta có tầm nhìn cố định trên màn hình ,bây giờ ta dùng các cửa sổ với độ lên khác nhau để xem hình từng phần của hình . Các trường hợp có thể xảy ra : + Kích thước cửa sổ giữ nguyên nhưng vị trí cửa sổ di chuyển trên không gian đồ hoạ . lúc này ta có thể khảo sát các phần khác nhau của ảnh ,hình của ảnh được chiếu lên màn hình có kích thước không đổi . + Kích thước cửa sổ thu nhỏ lại : phần của ảnh được khảo sát trên cửa sổ trên cửa sổ thu nhỏ lại , song hình của nó trên tầm nhìn cồ định được phóng to . + Kích thước cửa sổ phóng to ra : phần của ảnh được khảo sát lớn hơn song ảnh của nó trong tầm nhìn cố định được thu nhỏ lại . + Tóm lại ,nguyên tắc thu phóng nh sau với tầm nhìn cố định : + Phóng ảnh : Thu nhỏ cửa sổ so với tầm nhìn cố định . + Thu ảnh : Tăng kích thước cửa sỗ . 6 . Xén hình – Clipping : Kỹ thuật Clipping là kỹ thuật cắt xén , loại bỏ phần ảnh không nằm trong cửa sổ . Clipping là tiến trình xác định các điểm của một đối tượng nằm trong hay ngoài cửa sổ hiển thị nếu điểm nằm ngoài cửa sổ hiển thị sẽ bị loại bỏ . GiảI thuật này nhằm mục đích xác định nhanh phần chứa các điểm hiªnt thị và loại bỏ các phần không chứa . Ta chỉ cần quan tâm ®Ðn Đề tài thực tập tốt nghiệp 6 Một số ứng dụng đồ họa trong không gian hai điểm đầu và cuối của đoạn thẳng đó chứ không phảI các điểm nằm trên đoạn thẳng đó . Nếu cả hai điểm đầu và cuối của đoạn đều nằm về một phía trong cửa sổ Clipping thì đoạn thẳng đó sẽ được vẽ đầy đủ ,không bị cắt phần nào . Còn khi một trong hai ,hoặc cả hai điểm nằm ngoài cửa sổ Clipping , đoạn thaneg sẽ bị loại bỏ phần nằm ngoài cửa sổ Clipping . VD : Trước khi Clipping Sau khi Clipping 5.3.2 . Một số giảI thuật Clipping : 1 . GiảI thuật Cohen – Surtherland : Thuật giải này giải giảI quyết bài toán làm thế nào để xác định phần đoạn thẳng có trong cửa sổ . Theo Cohen thì một cửa sổ sẽ được chia thành 9 phần ,mỗi phần được ứng với một mã 4 bít , 1 điểm P ( x,y ) bất kỳ thuộc cửa sổ sẽ ứng với 1 mã 4 bít gọi là Kod : Kod (P) = b1b3b2b4 . Trong đó : b I : (i=1 4 ) được xác định nh sau : b 1 = 1 nếu P nằm bên trái cửa sổ b 2 = 1 nếu P nằm bên phảI cửa sổ b 3 = 1 nếu P nằm bên dưới cửa sổ b 4 = 1 nếu P nằm bên trên cửa sổ Đề tài thực tập tốt nghiệp 7 Một số ứng dụng đồ họa trong không gian Nh vậy P (x,y ) bất kỳ thuộc mặt phẳng chiếu được xác định theo (1) nh sau Trong đó : b 1 : bít dấu của x- x min b 2 : bít dấu của x max - x b3 : bít dấu của y max - y b4 : bít dấu của y- y max Quy ước : Nếu P thuộc biên của cửa sổ thì Kod (P ) =0000 • Đoạn thẳng nhìn thấy  P1P2 thuộc cửa sổ  Kod(P1) =Kod(P2) =0000 • Đoạn không nhìn thấy : • Khi P1P2 nằm ngoài cửa sổ  Kod(P1) and Kod(P2) <> 000 • Đoạn thẳng cắt : Không thoả mãn hai điều kiện trên - 1. Hai đầu mót nằm trên hai cạnh cửa sô ( AB - Hình vẽ ) - 2 .Một trong hai đầu mót nằm ngoài cửa sổ (CD – Hình vẽ ) - 3. Cả hai đầu mót nằm ngoài cửa sổ . ( EF – Hình vẽ ) Đề tài thực tập tốt nghiệp 1001 1000 1010 0001 0000 0010 0101 0100 0110 X X min X max Y min Y max b 1 =1 nếu x< X min b2= 1 nếu x < x max b3= 1 nếu y < Y max b4 =1 nếu y < y min 8 Một số ứng dụng đồ họa trong không gian • Nội dung thuật giải Cohen – Sutherland : Giả sử P1(x 1 ,y 1 ) , P2 (x2,y2) và cửa sổ ( x min ,y min ,x max , Y max ) • Bước 1 : Tính Kod (P1) và Kod (P2) • Bước 2 : Nếu Kod (P1) = Kod(P2) =0000 thì nhảy đến bước b5 (P1P2 ) nằm trong cửa sổ . • Bước 3 : Nếu Kod (P1) =Kod(P2) <> 0000 thì nhảy đến bước b6 (P1P2) nằm ngoài cửa sổ . • Bước 4 : Nếu không thoả mãn 2 điều kiện trên thì thực hiện Nếu Kod(P1) =0000 thì hoán vị P1 với P2 để Kod(P1) <> 0000 và lấy Kod (P1)=b4b3b2b1 - Nếu b1= 1 thì y 1 := y 1 + (y 2 - y 1 ) * (X max –X 1 )/(X 2 -X 1 ) - Nếu b2= 1 thì y 1 := y 1 + (y 2 - y 1 ) * (X max –X 1 )/(X 2 -X 1 ) - Nếu b3= 1 thì y 1 := x 1 + (X 2 - X 1 ) * (Y max –Y 1 )/(Y 2 -Y 1 ) - Nếu b4= 1 thì y 1 := x 1 + (X 2 - X 1 ) * (y min –Y 1 )/(Y 2 -Y 1 ) Quay lại bước 1 B5 : Vẽ đoạn thẳng P 1 P 2 B6 Kết thúc • Chương trình minh hoạ : Program Cohen_Sutherland ; Ues crt,graph ; Đề tài thực tập tốt nghiệp A B C D E F X Y 9 Một số ứng dụng đồ họa trong không gian Type Code =array [1 4] of Byte ; Var a 1 ,a 2 ,b 1 ,b 2 : real ; n , i , x min ,y min , x max , gd ,gm :integer ; b: code ; Procedure Kt_dohoa ; Begin Gd: =detect ; Init graph (gd,gm , ‘ \bgi ‘) ; If graph result <> grOk then Halt (1); End ; Procedure dacbiet (x 1 ,y 1 ,x 2 ,y 2 : real ); Var tg :real; Begin If ( x 1 = x 2 ) and (x 1 > x 2 ) and (x 2 < x max ) then Begin If y 1 > y 2 then { doi cho } Tg:= y1 ; y 1 := y 2 ; y 2 := tg ; end ; If (y 1 > y min ) and ( y 1 < y max ) and (y 2 > y max ) then Y 2 := y max ; If ((y 2 > y min ) and ( y 2 < y max ) and (y 1 < y min ) then Y 1 := y min ; Begin if (y 1 = y 2 ) and ( y 1 > y min ) and (y 2 < y max ) then Đề tài thực tập tốt nghiệp 10 [...]... khụng gian lờn mt phng I t vn _ Phộp chiu l phộp chuyn i nhng im trong h to nhiu chiu thnh nhng im trong h to cú s chiu nh hn n Thc t ho mỏy tớnh i sõu vonghiên cứu các đối tợng n chiều bằng cách chiếu chúng lên mặt phẳng hai chiều để biểu diễn Trong phần này, chỉ giới hạn với các phép chiếu từ ba chiều vào hai chiều _ Thc t v mt hỡnh trong khụng gian lờn mn hỡnh ho l v hỡnh chiu ca hỡnh khụng gian... ng ny Tuy nhiờn , ta cú th nhỡn trờn ti thc tp tt nghip 16 Mt s ng dng ha trong khụng gian quan diểm l ô tụ ng yờn cũn cnh vt chuyn ng Trong mt vi trng hp c hai phng phỏp trờn u c s dng Trc khi tỡm hiu xem li cỏc phộp bin i trong khụng gian ba chiu Chúng ta xem li cỏc phộp bin i trong mt phng (Vỡ nú l c s ca phộp bin i trong khụng gian ba chiu ) 2 Cỏc phộp bin i ho 2.1 C s toỏn hc ca cỏc phộp bin... 23 Mt s ng dng ha trong khụng gian => F= -sin -x0cos +y0sin+b cos -x0sin-y0cos+y0 4.Cỏc phộp bin i ho trong khụng gian ba chiu 4.1 nh ngha Xột cỏc im M(x,y,z) trong khụng gian Qua mt phộp bin i no ú im M(x,y,z) biu din c bc nht theo )x,y,z) tuyn tớnh i vi (x,y,z) x=A1x+B1y+C1+m y=A2x+B2y+c2+n z=Z3x+B3y+C3+p (*) Cú th vit h thc (*) di dng ma trn nh sau (*) => (x y z 1)=(x y z 1).F Trong ú : F= A1 B1... then Cohen_SutherlandClipping( a1 ,b1 ,a2 , b2 ) Else dacbiet( a1 ,b1 , a2 ,b2 ); Readln ; Closegraph ; END Chng II ti thc tp tt nghip 14 Mt s ng dng ha trong khụng gian Cỏc phộp bin hỡnh trong khụng gian I.Hễ to trong khụng gian nh v mt im trong khụng gian ba chiu ta chn h to cỏc hoc h to cu 1.H to cỏc: Gm ba trc to ox,oy,oz vuụng gúc tng ụi Khi chiu vecter Om lờn cỏc trc Z z M(x,y,z)... thng ho mỏy tớnh l kh nng mụ phng d chuyn ng ca cỏc i tng trong khụng gian hai chiu (2D) v ba chiu (3D) Cỏc quỏ trỡnh ny bao gm phộp tnh tin ,phộp quay,phộp co dón v phộp ly i xng Cỏc phộp tớnh toỏn dc mụ t di dng cụng thc toỏn hc phự hp vi x lí mỏy tớnh Cú hai cỏch nhỡn trong cụng vic mụ t s chuyn ng ca i tng Th nht , i tng chuyn ng trong mt h to ng yờn Biu diễndới dng toỏn hc ca loi th nht... ]F Vit di dng ma trn ta cú: T ú suy ra ma trn F ca phộp co dón t l trong khụng gian kx 0 0 0 0 ky 0 0 F= 0 0 kz 0 0 0 0 1 Nu cỏc thnh phn kx=ky=kz bng nhau thỡ s thay i t l u c.Phộp i xng Trong phn ny ta xột ba phộp i xng thng dựng ú l :i xng qua gc to , i xng qua trc to , i xng qua mt phng to ti thc tp tt nghip 25 Mt s ng dng ha trong khụng gian C1.Phộp i xng qua gc to Bin i to (x,y,z) thnh to... tt nghip 27 Mt s ng dng ha trong khụng gian y1=ym-B A2+B2+C2 (Axm+Bym+Czm+D) z1=zm-B A2+B2+C2 MM=2MH (x-xm,y-ym,z-zm)=2(x1-xm,y1-ym,z1-zm) x=2x1-xm y1= 2y1-ym z1=2z1-zm Ta cú ma trn : -1 0 0 0 -1 0 => 0 0 -1 2x1 2y1 2z1 d.Phộp quay quanh mt trc to 0 0 0 1 Phộp quay quanh trong khụng gian ba chuều đơch xột phc tp hn phộp quay c xỏc nh bi gúc quay v tõm ca phộp quay P Trong khụng gian ba chiu , phộp... Phé quay chớnh tc c xỏc dịnh khi mt trong cỏc trc x,y,z dng c chnj lm trc quay D1.Quay quanh trc z thỡ giỏ tr to z khụng thay i , ch cú giỏ tr to x v y thay i Nh vy tng ng vi vic quay hỡnh chiu ca im M(x,y) la M1(x,y,0) theo gúc quay ti v trớ M1(x,y,0) trong mt phng Xoy 0 M(x,y,0) Hỡnh 2.6 Phộp quay quanh trc OZ Ta cú : ti thc tp tt nghip 28 Mt s ng dng ha trong khụng gian x=xcos - ysin y1=xsin... trờn ng trũn nm trong mt phng vuụng gúc vi gúc Xoy Vỡ vy thay i gia tr , hỡnh khụng gian s quay theo chiu ngc vi chiu di chuyn ca im quan sỏt 2.3 Thay i D hoc R Khi thay i , khong cỏch t im quan sỏt n hỡnh khụng gian s thay i m hỡnh chiu s c phong to hay thu nh Ta dựng tớnh cht ny Zoom hỡnh ti thc tp tt nghip 31 Mt s ng dng ha trong khụng gian Chng III Cụng thc ca cỏc phộp chiu trong khụng gian... ngha phộp tnh tin ta cú : MM = v MM(x-x,y-y) v(a,b) Y M(x,y) M(x,y) X ti thc tp tt nghip 18 Mt s ng dng ha trong khụng gian Theo nh ngha hai vecter bng nhau MM=v x-x=a x=x+a => y-y=b y=y+b 1 0 0 =>F= 0 1 0 a b 1 2.3 Phộp co dón to Gi s trong h to XOY ta phi dón trc OX theo Kx, dón Oy theo ky Trong do kx, ky l h s co dón Phộp co dón to s bin i to (x,y) thnh (x,y) theo cụng thc: x=kx.x y=ky.y Vit . Một số ứng dụng đồ họa trong không gian Chương I : TìM HIểU về các nguyên thể trong đồ hoạ Hình ảnh được cÂu thành từ các nguyên thể cơ bản như điểm ảnh , đường thẳng. Trước khi tìm hiểu xem lại các phép biến đổi trong không gian ba chiều .Chóng ta xem lại các phép biến đổi trong mặt phẳng (Vì nó là cơ sở của phép biến đổi trong không gian ba chiều ) 2. Các phép. nghiệp 14 Một số ứng dụng đồ họa trong không gian Các phép biến hình trong không gian I.HÔ toạ độ trong không gian Để định vị một điểm trong không gian ba chiều ta chọn hệ toạ độ đề các hoặc hệ tạo

Ngày đăng: 15/10/2014, 20:50

Từ khóa liên quan

Mục lục

  • Chương I : TìM HIểU về các nguyên thể trong đồ hoạ

  • Xây dựng trên cơ sở thủ tục vẽ một đoạn thẳng với hai đầu mót trùng nhau .

  • Các phép biến hình trong không gian

    • Gồm ba trục toạ độ ox,oy,oz vuông góc từng đôi . Khi chiếu vecter Om lên các trục .

    • Người ta còn phân biệt hệ toạ độ Đề Các thuận và hệ Đề Các nghịch

    • F1= 0 1 0 F2= 0 0 0

      • A-y1

      • Toạ độ của điểm H là nghiệp của hệ phương trình

      • Bx0-Ay0+Ay1-Bx1=0

        • Bx0+A(Ax+C) +Ay1-Bx1=0

        • A B2x1-AC-Aby1 +C

        • (A2+B2)

        • y=-

        • B

        • -1 0 0

        • => 0 -1 0

        • 2x0 2y0 1 M’(x’,y’)

        • 3.Phép quay

        • Quay quang gốc toạ độ một góc 

        •  M(x,y)

        • R= OM = OM’ = OM = OM’ 0

        • 0=(Ox,OM)

        •  =(OM,OM’)

Tài liệu cùng người dùng

Tài liệu liên quan