Giáo trình Tin học đại cương - Phần 2 - Chương 7: Đồ họa và âm thanh

Màn hình máy vi tính hiện nay có nhiều loại khác nhau, các máy AT-386, AT-486, AT-586. thường dùng loại màn hình VGA (Video Graphic Adapter), TVGA (Top of VGA) hoặc

SVGA (Supper VGA), đây là loại màn hì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 đượ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 chế độ phân giải để viết ra 25dòng x

40 cột hoặc 80dòng x 50 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

pdf14 trang | Chuyên mục: Pascal | Chia sẻ: dkS00TYs | Lượt xem: 1682 | Lượt tải: 0download
Tóm tắt nội dung Giáo trình Tin học đại cương - Phần 2 - Chương 7: Đồ họa và âm thanh, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
 185 
 outtextxy(410,370,'V'); 
 outtextxy(310,400,'VI'); 
 outtextxy(210,370,'VII'); 
 outtextxy(135,290,'VIII'); 
 outtextxy(130,210,'IX'); 
 outtextxy(155,130,'X'); 
 outtextxy(220,60,'XI'); 
 setcolor(blue); 
 Settextstyle(4,0,5); 
 outtextxy(230,100,'DIAMON'); 
 setcolor(random(14)); 
 for i:=1 to 20 do 
 circle(320,360,i ); 
 settextstyle(1,0,2); 
 setcolor(5); 
 outtextxy(200,450,'Copyright by Dr. Duong Xuan Thanh'); 
 for i:=1 to 20 do 
 begin 
 setcolor(random(14)); 
 circle(320,360,i ); 
 end; 
 for i:=1 to 20 do 
 begin 
 setcolor(random(14)); 
 circle(320,360,i ); 
 end; 
 for t:=0 to 12 do {-------- Kim gio --------} 
 begin 
 setcolor(12); 
 moveto(320,240); 
 setlinestyle(0,0,3); 
 SetWriteMode(xorput); 
 linerel(round(110*cos((t*30-89)*pi/180)),round(110*sin((t*30-89)*pi/180))); 
 moveto(320,240); 
 linerel(round(110*cos((t*30-90)*pi/180)),round(110*sin((t*30-90)*pi/180))); 
 moveto(320,240); 
 linerel(round(110*cos((t*30-91)*pi/180)),round(110*sin((t*30-91)*pi/180))); 
 moveto(320,240); 
 linerel(round(110*cos((t*30-92)*pi/180)),round(110*sin((t*30-92)*pi/180))); 
 for i:=0 to 60 do { ---------Kim phut -------} 
 begin 
 setcolor(12); 
 moveto(320,240); 
 setlinestyle(0,0,3); 
 SetWriteMode(xorput); 
 linerel(round(130*cos((i*6-89)*pi/180)),round(130*sin((i*6-89)*pi/180))); 
 moveto(320,240); 
Trường ðại học Nông nghiệp 1 - Giáo trình Tin học ñại cương --------------------------------------------- 186 
 186 
 linerel(round(130*cos((i*6-90)*pi/180)),round(130*sin((i*6-90)*pi/180))); 
 moveto(320,240); 
 linerel(round(130*cos((i*6-91)*pi/180)),round(130*sin((i*6-91)*pi/180))); 
 (*--------Kim giay--------*) 
 for j:=0 to 360 do 
 begin 
 moveto(320,240); 
 setlinestyle(0,0,3); 
 SetWriteMode(XORPut); 
 setcolor(12); 
 linerel(round(150*cos((j-90)*pi/180)),round(150*sin((j-90)*pi/180))); 
 moveto(320,240); 
 linerel(round(150*cos((j-91)*pi/180)),round(150*sin((j-91)*pi/180))); 
 delay(1000); moveto(320,240); 
 linerel(round(150*cos((j-90)*pi/180)),round(150*sin((j-90)*pi/180))); 
 moveto(320,240); 
 linerel(round(150*cos((j-91)*pi/180)),round(150*sin((j-91)*pi/180))); 
 end; 
 moveto(320,240); 
 linerel(round(130*cos((i*6-89)*pi/180)),round(130*sin((i*6-89)*pi/180))); 
 moveto(320,240); 
 linerel(round(130*cos((i*6-90)*pi/180)),round(130*sin((i*6-90)*pi/180))); 
 moveto(320,240); 
 linerel(round(130*cos((i*6-91)*pi/180)),round(130*sin((i*6-91)*pi/180))); 
 end; 
 moveto(320,240); 
 linerel(round(110*cos((t*30-89)*pi/180)),round(110*sin((t*30-89)*pi/180))); 
 moveto(320,240); 
 linerel(round(110*cos((t*30-90)*pi/180)),round(110*sin((t*30-90)*pi/180))); 
 moveto(320,240); 
 linerel(round(110*cos((t*30-91)*pi/180)),round(110*sin((t*30-91)*pi/180))); 
 moveto(320,240); 
 linerel(round(110*cos((t*30-92)*pi/180)),round(110*sin((t*30-92)*pi/180))); 
 end; 
 repeat until keypressed; 
 END. 
2 – Âm thanh 
Trong các máy PC thông dụng công suất của loa rất nhỏ do ñó việc tạo âm thanh chỉ có 
tính chất biểu diễn. Muốn tạo ra âm thanh cao thấp khác nhau ta chỉ cần ñưa vào loa các xung 
ñiện với tần số khác nhau. Turbo Pascal ñã có ba thủ tục thiết kế sẵn ñể làm việc này 
SOUND(n) : tạo ra âm thanh với tần số n , ở ñây n phải là một số nguyên dương 
DELAY(n) : Kéo dài tín hiệu âm thanh trong khoảng thời gian n miligiây nếu sau ñó có 
thủ tục ngắt âm Nosound. 
NOSOUND : ngắt tín hiệu âm thanh 
Cần chú ý rằng khi có thủ tục sound và Delay tín hiệu âm thanh sẽ ñược phát ra chừng 
nào chưa có Nosound mặc dù ta ñã ñịnh khoảng thời gian trễ qua thủ tục Delay. 
Trường ðại học Nông nghiệp 1 - Giáo trình Tin học ñại cương --------------------------------------------- 187 
 187 
ðể tạo một bản nhạc chúng ta cũng cần có một chút kiến thức về nhạc lý. ðộ cao thấp 
trong âm nhạc ñược phân thành các quãng tám. Quãng tám trung tần thì nốt ðô có tần số 512 
Hz, quãng tám trầm hơn tần số của nốt ðồ sẽ là 256 Hz, còn quãng tám cao hơn nốt ðố có tần 
số 1024 Hz. 
Tên các nốt nhạc theo quy ước là: 
Quãng tám trầm : ñồ, rề, mì, fà, sòn, là, xì 
Quãng tám trung : ñô, rê, mi, fa, son, la , xi 
Quãng tám cao : ñố, rế, mí, fá, són, lá, xí 
Về cao ñộ thì các nốt Mi - Fa và Xi - ðô cách nhau nửa cung các nốt còn lại cách nhau 
một cung. Nếu tính từ nốt ðồ (tần số 256) ñến nốt ðố (tần số 512) khoảng cách là 6 cung như 
vậy sự chênh leechj về tần số trong mỗi cung sẽ là (512-256)/6 = 43 Hz. Giữa các nốt Mi - Fa 
và Xi - ðô chênh lệch chỉ là 22 Hz (vì các nốt này cách nhau nửa cung). Ngoài ra cũng cần 
biết cách tạo ra các nốt thăng, giáng ñể có thể tạo ra một bản nhạc theo ý muốn. 
Nếu chúng ta chỉ muốn nghe một bản nhạc phát ra từ máy thì có thể tạo nên một chương 
trình thiết kế các nốt nhạc sau ñó ghép chúng lại thành bản nhạc tuỳ ý. 
 Chương trình dưới ñây thiết kế bản nhạc Làng tôi, các chương trình con T0, T1...T5 
tạo ra trường ñộ, ví dụ T0 là nốt tròn, T1 là nốt ñen... các chương trình con khác tạo ra các nốt 
nhạc của hai quãng tám trầm và trung, trong ñó có một số nốt thăng và giáng. 
Program Vancao; 
uses crt; 
 procedure T0; Begin delay(20000); Nosound; End; 
 procedure T1; Begin delay(10000); Nosound; End; 
 procedure T2; Begin delay(5000); Nosound; End; 
 procedure T3; Begin delay(2500); Nosound; End; 
 procedure T4; Begin delay(1250); Nosound; End; 
 procedure T5; Begin delay(30000); Nosound; End; 
 Procedure nt(i:integer); 
 Begin Sound(i); End; 
 Procedure do1; Begin nt(256); End; {quang tam tram} 
 Procedure do11; Begin nt(270); End; {not do thang} 
 Procedure re1; Begin nt(299); End; 
 Procedure mi1; Begin nt(342); End; 
 Procedure fa1; Begin nt(363); End; 
 Procedure son1; Begin nt(406); End; 
 Procedure la1; Begin nt(449); End; 
 Procedure si1; Begin nt(492); End; 
 Procedure do2; Begin nt(534); End; {quang tam trung} 
 Procedure re2; Begin nt(600); End; {not Re giang} 
 Procedure mi2; Begin nt(685); End; 
 Procedure fa2; Begin nt(634); End; 
 Procedure son2; Begin nt(677); End; 
 Procedure la2; Begin nt(712); End; 
 Procedure si2; Begin nt(755); End; 
 Procedure Langtoi; 
 Begin 
Trường ðại học Nông nghiệp 1 - Giáo trình Tin học ñại cương --------------------------------------------- 188 
 188 
 clrscr; gotoxy(25,12); textcolor(14); textbackground(red); 
 Write(' LANG TOI * Nhac tien chien '); 
 Repeat 
 do11;t0;mi1;t1;son1;t0;la1;t1;son1;t0; 
 son1;t1;do2;t1;si1;t1;la1;t1;son1;t0; 
 la1;t1;son1;t1;fa1;t1;mi1;t1;son1;t0;t1; 
 do11;t0;re1;t1;mi1;t0;son1;t1;do2;t0;re2;t1;mi2;t0;t1; 
 re2;t1;do2;t1;re2;t1;do2;t1;son1;t0;mi1;t1;son1;t1;do2;t5;t1; 
 do2;t1;do2;t2;la1;t1;la1;t1;si1;t1;la1;t1;son1;t0;t1; 
 fa1;t1;fa1;t1;la1;t0;t4;la1;t1;mi1;t0;re1;t1;son1;t5;t1; 
 do1;t0;re1;t1;mi1;t0;fa1;t1;son1;t0;mi1;t1;re1;t5; 
 do1;t1;do2;t0;si1;t1;re2;t0;son1;t1;do2;t5; 
 Until keypressed; Nosound; 
 End; 
 BEGIN 
 Langtoi; 
 END. 
Dưới ñây là ví dụ thiết kế bàn phím thành các phím của một chiếc ñàn dương cầm. Các 
nốt ñô, rê, mi, fa, son, la , xi ñố sẽ bấm các chữ cái tương ứng ( D, R, M, F, S, L, X, Z). 
Muốn dừng âm ta bấm phím P (PAUSE), còn muốn dừng chương trình bấm E (EXIT). 
Program nhac; 
uses crt,graph; 
var 
n :char; i,j:integer; 
begin 
 clrscr; 
 textcolor(14); textbackground(white); 
 for i:=1 to 6 do 
 begin 
 gotoxy(16,i+3); 
 for j:=1 to 51 do write(chr(177)); 
 end; 
 gotoxy(17,5); 
 textcolor(red); 
 write('Do-D, Re-R, Mi-M, Fa-F, Son-S, La-L, Xi-X, Do2-Z'); 
 gotoxy(33,6); write(' Re2-W, Mi2-T '); 
 gotoxy(22,7); 
 textcolor(blue); 
 writeln(' P->Ngat am, E-> Dung chuong trinh '); 
 gotoxy(22,8); 
textcolor(5); 
writeln('Moi ban choi moi ban nhac minh ua thich '); 
repeat 
n:= readkey; 
if n = 'd' then begin nosound; delay(3); sound(523); end; 
Trường ðại học Nông nghiệp 1 - Giáo trình Tin học ñại cương --------------------------------------------- 189 
 189 
if n = 'r' then begin nosound; delay(10); sound(587); end; 
if n = 'm' then begin nosound; delay(10); sound(659); end; 
if n = 'f' then begin nosound; delay(10); sound(698); end; 
if n = 's' then begin nosound; delay(10); sound(784); end; 
if n = 'l' then begin nosound; delay(10); sound(880); end; 
if n = 'x' then begin nosound; delay(10); sound(988); end; 
if n = 'z' then begin nosound; delay(3); sound(1050); end; 
if n = 'w' then begin nosound; delay(3); sound(1190); end; 
if n = 't' then begin nosound; delay(3); sound(1300); end; 
if n = 'p' then nosound; 
until upcase(n) ='E'; 
nosound; 
end. 
Bài tập chương VII 
1. Viết chương trình vẽ n hình vuông lồng nhau. 
2. Viết chương trình vẽ bàn cờ hình vuông có 64 ô ( mỗi chiều là 8), xen kẽ cứ một ô ñỏ rồi 
ñến 1 ô trắng. 
3. Viết chương trình vẽ ñò thị hình Cosin trong lương giác. 
Trường ðại học Nông nghiệp 1 - Giáo trình Tin học ñại cương --------------------------------------------- 190 
 190 
Tài liệu tham khảo 
1. Bùi Thế Tâm. Windows 2000, Word 2000, Excel 2000, Powerpoint 2000. Nhà xuất bản 
 Giao thông vận tải , năm 2003. 
2. Bùi Thế Tâm. Turbo Pascal 7.0. Nhà xuất bản thống kê, năm 1996 
3. Charles rubin. Microsoft Word (bản dịch). Nhà xuất bản trẻ, năm 1999. 
4. ðỗ Xuân Lôi. Cấu trúc dữ liệu và Giải thuật. Nhà xuất bản Khoa học và Kỹ thuật, 
 năm 1998. 
5. ðỗ Xuân Thụ - Hồ Khánh Lâm. Kĩ thuật vi xử lý và máy vi tính. Nhà xuất bản giáo dục, 
 năm 2000. 
 6. Kain Richard. Advance Computer architecturre: A system Design Approach. Prentice 
 Hall USa, 1996 
7. Hoàng Hồng. Giáo trình tin học văn phòng. Nhà xuất bản Giao thông vận tải, năm 2002. 
8. Hayes John. Computer Architecturre and Orgnizassion. McGaw Hill USA. 1998 
9. Nguyễn Nam Trung. Cấu trúc máy tính và thiết bị ngoại vi. Nhà xuất bản Khoa học và 
 kỹ thuật, năm 2003. 
10. Nguyễn Xuân Phong - Trương Lê Ngọc Thường. Tin học ñại cương. Nhà xuất bản 
 Thanh niên, năm 2002. 
11. Nguyễn Xuân Huy. Thuật toán . Nhà xuất bản Thống kê, năm 1988 
12. Xuân Thành. Internet, Explorer 6.0. Nhà xuất bản Thống kê, năm 2002. 

File đính kèm:

  • pdfGiáo trình Tin học đại cương - Phần 2 - Chương 7_Đồ họa và âm thanh.pdf
Tài liệu liên quan