Giáo trình lập trình nâng cao - Chương 6
Số trang: 23
Loại file: pdf
Dung lượng: 218.24 KB
Lượt xem: 21
Lượt tải: 0
Xem trước 3 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Tài liệu tham khảo Giáo trình lập trình nâng cao trên ngôn ngữ Pascal soạn theo chương trình đã được Bộ giáo dục và đào tạo phê chuẩn - Chương 6 Đồ họa
Nội dung trích xuất từ tài liệu:
Giáo trình lập trình nâng cao - Chương 6 Chương 6 ð ho ð ho trong Pascal không ph i là công c chuyên dùng ñ thi t k hình nh. Tuy nhiên n u bi t t n d ng các công c s n có trong Unit Graph chúng ta có th làm ñư c nhi u vi c, ñ c bi t là v ñ th các hàm s . Trong chương này b n ñ c ti p c n các khái ni m sau: Các th t c v hình ñơn gi n Các th t c vi t ch trong ch ñ ñ ho Các th t c tô màu Các phương pháp x lý nh Bitmap Phương pháp v ñ th hàm s Trư ng ð i h c Nông nghi p 1 - Giáo trình L p trình nâng cao ..............................................................- 143 1. Khái ni m chung Màn hình máy vi tính có th dùng m t trong hai ch ñ : ch ñ TEXT - hi n th văn b n và ch ñ GRAPHIC - hi n th ñ ho . Trong ch ñ TEXT màn hình thư ng ñư c chia thành 25 dòng và 80 c t, n u vi t kín màn hình ta có th vi t ñư c 2000 ký t . Chúng ta có th thay ñ i ñ phân gi i ñ vi t ra 25 dòng x 40 c t, 50 dòng x 80 c t ho c 132 dòng x 43 c t. Mu n v hình, tô màu các hình ta ph i chuy n sang ch ñ ñ ho , trong ch ñ này màn hình ñư c xem là m t ma tr n ñi m, tuỳ thu c ñ phân gi i ta có th có ma tr n 640x480 ñi m ho c 1024x720 ñi m.... M i ñi m trên màn hình ñư c g i là 1 Pixel t c là m t ph n t nh ( Picture Element ), ta có th hoàn toàn ch ñ ng trong vi c thay ñ i màu s c c a t ng ñi m ñ t o ra m t b c tranh theo ý mu n. V trí c a m i ñi m trên màn hình ñư c bi u di n b i hai to ñ : Hoành ñ và Tung ñ . G c to ñ (0,0) là ñi m góc trên bên trái màn hình. Như ñã nêu trong chương 1 ph n cài ñ t Pascal, mu n chuy n sang làm vi c ch ñ ñ ho , trong thư m c hi n hành (thư m c ch a chương trình Pascal) ph i có các t p GRAPH.TPU, *.BGI và *.CHR. L i g i ñơn v chương trình ñ ho ph i ñ t ñ u chương trình ngay sau t khoá PROGRAM như ví d 6.1. Ví d 6.1 Program Ve_hinh; Uses GRAPH; ....... Trong ph n thân chương trình c n ph i ñưa vào các thông báo v ki u màn hình, ch ñ ñ ho (MODE) tương ng. Nh ng ngư i làm tin h c ng d ng thư ng không quan tâm l m ñ n các thông s này do v y d lúng túng khi c n khai báo. ð kh c ph c như c ñi m ñó trong Pascal ñã thi t k s n m t th t c kh i t o ch ñ ñ ho là: Initgraph(var GD,GM: Integer, DP:string[n]); Khi g i th t c này v i các tham s h p l Initgraph s t xác ñ nh ki u màn hình và Mode ñ ho t i ưu . ð g i th t c Initgraph c n ph i khai báo trư c các tham s GD, GM thu c ki u Integer (Trong ñó GD: Graph Driver - là m t s nguyên xác ñ nh ki u màn hình; GM: Graph Mode - cũng là m t s nguyên xác ñ nh Mode ñ ho ). N u ngay sau t khoá Begin c a ph n thân chương trình chúng ta khai báo GD:= Detect; thì Initgraph hi u là nó ph i t ñi xác ñ nh ki u màn hình và Mode ñ ho sao cho ñ t k t qu t i ưu. Nói chung tr nh ng trư ng h p ñ c bi t, chúng ta không nên t xác ñ nh nh ng thông s này làm gì. Tham s DP ( Driver Path ) là ñư ng d n t i thư m c ch a các t p ñi u khi n ki u màn hình ñ ho , thông thư ng Pascal ñ ơc cài ñ t trong trong ñĩa c ng nên DP s là 'C:\tp\bgi' nghĩa là ñĩa C, thư m c con BGI trong thư m c TP. Trư ng ð i h c Nông nghi p 1 - Giáo trình L p trình nâng cao ..............................................................- 144 Ví d 6.2 là chương trình v m t ñư ng tròn có tâm t i chính gi a màn hình và bán kính là 50 Pixel. Ví d 6.2 Program Ve_hinh_tron; Uses graph; Var GD,DM: Integer; Begin GD:= detect; Initgraph(GD,GM,'c:\tp\bgi'); If graphresult grok then halt(1); Circle(320,240,50); Readln; CloseGraph; End. Dòng th 8 trong ví d 6.2 If graphresult grok then halt(1); là câu l nh ki m tra giá tr c a hàm graphresult (k t qu ki m tra ñ ho ), n u hàm này nh n giá tr 0 thì ñ ho không có l i, chương trình ti p t c làm vi c, còn n u giá tr c a graphresult khác 0 ch ng t vi c ki m tra phát hi n ra l i, chương trình ph i d ng l i. B ng 6.1 cho mã l i mà hàm graphresult tr v . Thông thư ng l i x y ra ch y u là do ngư i s d ng khai báo không ñúng tham s GD, nghĩa là không ch ra cho Pascal bi t các t p ñi u khi n ñ ho n m ñâu, mu n s a ch a ch c n khai báo l i tham s này theo ñúng v trí mà nó ñư c cài ñ t. 2. M t s th t c cơ b n ñ v hình 2.1. MOVETO(x,y) : Di chuy n con tr ñ n to ñ x,y (x là hoành ñ , y là tung ñ ) x,y là các giá tr ki u Integer, v i màn hình VGA thì 0 2.4. LINEREL(dX,dY) : V ñư ng th ng t v trí hi n th i ( to ñ x,y) t i to ñ x+dx, y+dy. B ng 6.1 Mã l i Tên l i Nghĩa c a l i 0 Grok T t, không có l i 1 GrnoInitgraph Không tìm th y ñơn v ñ ho 2 Grnotdetected Không có ph n c ng ñ ho 3 GrFilenotfound Không tìm th y các t p ñi u khi n ñ ho 4 GrInvalidDriver File ñi u khi n ñ ho (BGI) b h ng 5 GrNoloadMem Không ñ b nh ñ n p trình ñi u khi n ñ ho 6 GrNoscanMem Không ñ b nh khi duy t (ki m tra) 7 grNoFloodMem Không ñ b nh khi k t xu t ( ñưa ra) 8 grFontNotFound Không tìm th y Font (các t p ñuôi CHR) 9 grNoFontMem Không ñ b nh ñ n p Font 10 grInvalidMode Sai mod ñ ho khi l a ch n các ñi u khi n 11 grError L i ñ ho (l i t ng quát) ...
Nội dung trích xuất từ tài liệu:
Giáo trình lập trình nâng cao - Chương 6 Chương 6 ð ho ð ho trong Pascal không ph i là công c chuyên dùng ñ thi t k hình nh. Tuy nhiên n u bi t t n d ng các công c s n có trong Unit Graph chúng ta có th làm ñư c nhi u vi c, ñ c bi t là v ñ th các hàm s . Trong chương này b n ñ c ti p c n các khái ni m sau: Các th t c v hình ñơn gi n Các th t c vi t ch trong ch ñ ñ ho Các th t c tô màu Các phương pháp x lý nh Bitmap Phương pháp v ñ th hàm s Trư ng ð i h c Nông nghi p 1 - Giáo trình L p trình nâng cao ..............................................................- 143 1. Khái ni m chung Màn hình máy vi tính có th dùng m t trong hai ch ñ : ch ñ TEXT - hi n th văn b n và ch ñ GRAPHIC - hi n th ñ ho . Trong ch ñ TEXT màn hình thư ng ñư c chia thành 25 dòng và 80 c t, n u vi t kín màn hình ta có th vi t ñư c 2000 ký t . Chúng ta có th thay ñ i ñ phân gi i ñ vi t ra 25 dòng x 40 c t, 50 dòng x 80 c t ho c 132 dòng x 43 c t. Mu n v hình, tô màu các hình ta ph i chuy n sang ch ñ ñ ho , trong ch ñ này màn hình ñư c xem là m t ma tr n ñi m, tuỳ thu c ñ phân gi i ta có th có ma tr n 640x480 ñi m ho c 1024x720 ñi m.... M i ñi m trên màn hình ñư c g i là 1 Pixel t c là m t ph n t nh ( Picture Element ), ta có th hoàn toàn ch ñ ng trong vi c thay ñ i màu s c c a t ng ñi m ñ t o ra m t b c tranh theo ý mu n. V trí c a m i ñi m trên màn hình ñư c bi u di n b i hai to ñ : Hoành ñ và Tung ñ . G c to ñ (0,0) là ñi m góc trên bên trái màn hình. Như ñã nêu trong chương 1 ph n cài ñ t Pascal, mu n chuy n sang làm vi c ch ñ ñ ho , trong thư m c hi n hành (thư m c ch a chương trình Pascal) ph i có các t p GRAPH.TPU, *.BGI và *.CHR. L i g i ñơn v chương trình ñ ho ph i ñ t ñ u chương trình ngay sau t khoá PROGRAM như ví d 6.1. Ví d 6.1 Program Ve_hinh; Uses GRAPH; ....... Trong ph n thân chương trình c n ph i ñưa vào các thông báo v ki u màn hình, ch ñ ñ ho (MODE) tương ng. Nh ng ngư i làm tin h c ng d ng thư ng không quan tâm l m ñ n các thông s này do v y d lúng túng khi c n khai báo. ð kh c ph c như c ñi m ñó trong Pascal ñã thi t k s n m t th t c kh i t o ch ñ ñ ho là: Initgraph(var GD,GM: Integer, DP:string[n]); Khi g i th t c này v i các tham s h p l Initgraph s t xác ñ nh ki u màn hình và Mode ñ ho t i ưu . ð g i th t c Initgraph c n ph i khai báo trư c các tham s GD, GM thu c ki u Integer (Trong ñó GD: Graph Driver - là m t s nguyên xác ñ nh ki u màn hình; GM: Graph Mode - cũng là m t s nguyên xác ñ nh Mode ñ ho ). N u ngay sau t khoá Begin c a ph n thân chương trình chúng ta khai báo GD:= Detect; thì Initgraph hi u là nó ph i t ñi xác ñ nh ki u màn hình và Mode ñ ho sao cho ñ t k t qu t i ưu. Nói chung tr nh ng trư ng h p ñ c bi t, chúng ta không nên t xác ñ nh nh ng thông s này làm gì. Tham s DP ( Driver Path ) là ñư ng d n t i thư m c ch a các t p ñi u khi n ki u màn hình ñ ho , thông thư ng Pascal ñ ơc cài ñ t trong trong ñĩa c ng nên DP s là 'C:\tp\bgi' nghĩa là ñĩa C, thư m c con BGI trong thư m c TP. Trư ng ð i h c Nông nghi p 1 - Giáo trình L p trình nâng cao ..............................................................- 144 Ví d 6.2 là chương trình v m t ñư ng tròn có tâm t i chính gi a màn hình và bán kính là 50 Pixel. Ví d 6.2 Program Ve_hinh_tron; Uses graph; Var GD,DM: Integer; Begin GD:= detect; Initgraph(GD,GM,'c:\tp\bgi'); If graphresult grok then halt(1); Circle(320,240,50); Readln; CloseGraph; End. Dòng th 8 trong ví d 6.2 If graphresult grok then halt(1); là câu l nh ki m tra giá tr c a hàm graphresult (k t qu ki m tra ñ ho ), n u hàm này nh n giá tr 0 thì ñ ho không có l i, chương trình ti p t c làm vi c, còn n u giá tr c a graphresult khác 0 ch ng t vi c ki m tra phát hi n ra l i, chương trình ph i d ng l i. B ng 6.1 cho mã l i mà hàm graphresult tr v . Thông thư ng l i x y ra ch y u là do ngư i s d ng khai báo không ñúng tham s GD, nghĩa là không ch ra cho Pascal bi t các t p ñi u khi n ñ ho n m ñâu, mu n s a ch a ch c n khai báo l i tham s này theo ñúng v trí mà nó ñư c cài ñ t. 2. M t s th t c cơ b n ñ v hình 2.1. MOVETO(x,y) : Di chuy n con tr ñ n to ñ x,y (x là hoành ñ , y là tung ñ ) x,y là các giá tr ki u Integer, v i màn hình VGA thì 0 2.4. LINEREL(dX,dY) : V ñư ng th ng t v trí hi n th i ( to ñ x,y) t i to ñ x+dx, y+dy. B ng 6.1 Mã l i Tên l i Nghĩa c a l i 0 Grok T t, không có l i 1 GrnoInitgraph Không tìm th y ñơn v ñ ho 2 Grnotdetected Không có ph n c ng ñ ho 3 GrFilenotfound Không tìm th y các t p ñi u khi n ñ ho 4 GrInvalidDriver File ñi u khi n ñ ho (BGI) b h ng 5 GrNoloadMem Không ñ b nh ñ n p trình ñi u khi n ñ ho 6 GrNoscanMem Không ñ b nh khi duy t (ki m tra) 7 grNoFloodMem Không ñ b nh khi k t xu t ( ñưa ra) 8 grFontNotFound Không tìm th y Font (các t p ñuôi CHR) 9 grNoFontMem Không ñ b nh ñ n p Font 10 grInvalidMode Sai mod ñ ho khi l a ch n các ñi u khi n 11 grError L i ñ ho (l i t ng quát) ...
Tìm kiếm theo từ khóa liên quan:
ngôn ngữ Pascal lập trình Pascal lập trình nâng cao kiểu dữ liệu chương trình conGợi ý tài liệu liên quan:
-
Giáo trình Lập trình cơ bản với C++: Phần 1
77 trang 232 0 0 -
142 trang 130 0 0
-
Tài liệu tham khảo: Cấu trúc dữ liệu và giải thuật
229 trang 123 0 0 -
Giáo trình Cấu trúc dữ liệu và giải thuật: Phần 1 - Trần Hạnh Nhi
98 trang 115 0 0 -
Giáo trình Lập trình nâng cao (Nghề Lập trình máy tính): Phần 2 - Tổng cục dạy nghề
169 trang 88 0 0 -
Đề thi kết thúc học phần Lập trình nâng cao - Học viện Nông nghiệp Việt Nam
1 trang 80 0 0 -
ĐỀ CƯƠNG THI TRẮC NGHIỆM MÔN LẬP TRÌNH CÓ CẤU TRÚC
43 trang 66 0 0 -
Bài giảng Lập trình C căn bản: Chương 3 - Phạm Thế Bảo
68 trang 64 0 0 -
Đề thi học kì 2 môn Quản trị cơ sở dữ liệu với Access 1 năm 2022 - Trường Cao đẳng nghề Điện Biên
3 trang 60 1 0 -
Giáo trình Lập trình nâng cao: Phần 2 - Nguyễn Văn Vinh
153 trang 43 0 0