Các lĩnh vực nghiên cứu của đồ họa máy tính Hình 2.1.. LỜI MỞ ĐẦUĐồ họa máy tính là một ngành khoa học Tin học chuyên nghiên cứu về cácphương pháp và kỹ thuật để có thể mô tả và thao tác
Trang 1MỤC LỤC:
MỤC LỤC: 1
1.1.Giới Thiệu Chung 5
1.2.Ứng Dụng 6
1.3 Các lĩnh vực nghiên cứu 7
1.4.Tổng quan về trò chơi 8
1.5.Tóm tắt nội dung báo cáo: 9
1.1 Các phép vẽ hình cơ bản 10
1.1.1.Vẽ hình tròn 10
1.1.2.Vẽ hình chữ nhật 12
2.1.Các hàm chính trong chương trình 13
Hàm Putpixel() 13
Hàm Getpixel() 13
Hàm Setcolor() 14
Hàm Setfillstyle() 14
3.1 Bảng giá trị màu sử dụng trong thư viện graphics.h 14
4.1 Các hàm chính 15
4.1.1.Hàm vẽ gạch 15
4.1.2.Hàm vẽ bóng 15
4.1.3.Hàm vẽ thanh đỡ 16
4.1.4.Phím di chuyển trái bóng 16
4.1.5.Hàm Show 17
4.1.6.Hàm Menu 17
4.1.7.Hàm Load 18
4.1.8.Hàm Gameover 19
4.1.9.Hàm run_pinball 19
4.1.10.Hàm xóa gạch 22
CHƯƠNG III: CÀI ĐẶT CHƯƠNG TRÌNH 23
3.1.Giới thiệu về ngôn ngữ lập trình 23
3.3.Code chương trình 24
CHƯƠNG IV: KẾT LUẬN 31
Trang 2DANH MỤC CÁC BẢNG, SƠ ĐỒ, HÌNH
Bảng 2.1 Bảng giá trị màu sử dụng trong thư viện graphics.h
Hình 1.1 Các lĩnh vực nghiên cứu của đồ họa máy tính
Hình 2.1 Các vị trí đối xứng trên đường tròn (C) tương ứng với (x,y)
Trang 3LỜI CẢM ƠN
Sau một thời gian thực hiện đồ án, đến nay mọi công việc liên quan đến đồ án đãhoàn tất Trong suốt thời gian này, chúng em đã nhận được rất nhiều sự giúp đỡ Nhóm chúng em xin chân thành cảm ơn sự giúp đỡ nhiệt tình của thầy giáo
GV Nguyễn Ngọc Tú trang bị cho chúng em những kiến thức quý báu
Cũng xin gửi lời biết ơn đến ba, đến mẹ, những người đã luôn dành những tình thương yêu nhất cho chúng em, những người đã luôn hỗ trợ, dõi theo những bước đi của chúng em trong tất cả các năm học vừa qua Cảm ơn tất cả bạn bè, những người đã sát cánh cùng nhau những niềm vui, cùng chia sẻ những khó khăncủa chúng em và giúp đỡ chúng em rất nhiều trong quá trình thực hiện đồ án này
Trang 4LỜI MỞ ĐẦU
Đồ họa máy tính là một ngành khoa học Tin học chuyên nghiên cứu về cácphương pháp và kỹ thuật để có thể mô tả và thao tác trên các đối tượng của thếgiới thực bằng máy tính
Về bản chất: đó là một quá trình xây dựng và phát triển các công cụ trên cả hailĩnh vực phần cứng và phần mềm hổ trợ cho các lập trình viên thiết kế các chươngtrình có khả năng đồ họa cao
Với việc mô tả dữ liệu thông qua các hình ảnh và màu sắc đa dạng của nó, cácchương trình đồ họa thường thu hút người sử dụng bởi tính thân thiện, dể dùng, kích thích khả năng sáng tạo và nâng cao năng suất làm việc
Thuật ngữ đồ họa máy tính (Computer Graphics) được đề xuất bởi nhà khoa họcngười Mỹ tên là William Fetter vào năm 1960 khi ông đang nghiên cứu xây dựng
mô hình buồng lái máy bay cho hãng Boeing
Các chương trình đồ họa ứng dụng cho phép chúng ta làm việc với máy tínhmột cách thoải mái, tự nhiên
Tuy nhiên, việc dạy và học kỹ thuật đồ họa thì không là đơn giản do chủ đềnày có nhiều phức tạp Kỹ thuật đồ họa liên quan đến tin học và toán học hầu hếtcác giải thuật vẽ, tô cùng các phép biến hình đều được xây dựng dựa trên nền tảngcủa hình học không gian hai chiều và ba chiều
Là sinh viên chúng em được tìm hiểu làm quen với một số kĩ thuật đồ họatrên máy tính thông qua bài giảng, tài liệu do thầy giáo cung cấp Với những kiến
thức đã học chúng em quyết định chọn đề tài: Xây Dựng Phần Mềm Trò Chơi Ping Pall
Trang 5CHƯƠNG I: GIỚI THIỆU CHUNG 1.1.Giới Thiệu Chung.
Pinball - đó là cờ bạc, là tổ tiên của một trò chơi gọi là việc nhỏ mọn(«việc nhỏ mọn» của Pháp "trang sức"), có trụ sở tại tòa án của vua Louis XIV
Nó xảy ra khi một trong những đội bóng của ông giảm bảng hồ bơi và dính nó vớichân ở một bên Mặt khác, người chơi phải đánh bóng cue và đánh bại anh ta trongtúi, khác nhau về giá trị Bóng chạm chân và tất cả thời gian để thay đổi hướng.Các cầu thủ gửi các quả bóng vào túi bên phải, bạn phải đưa vào tài khoản góclệch khi đánh các chân Trò chơi này là rất gợi nhớ của những khẩu súng Trongmột trong các cuộc họp của cung điện vào năm 1777, đề xuất một niềm vui giải trímới Nó là như vậy tất cả đã để hương vị, em trai của nhà vua rằng ông ngay lậptức gọi cô là tên của sản của ông Bagatelle Trò chơi này không chỉ tầng lớp quýtộc, nhưng cũng thích những người bình thường và nhanh chóng lan rộng trong cảnước Và khi những người lính Pháp đã đi đến Mỹ để chống lại người Anh, họ đãmột đi lang thang trò chơi này Như vậy, thế giới mới đã gặp và đem tình yêu vớicác trò chơi việc nhỏ mọn Đã có vào năm 1869, Montague Redgrave - Anh phátminh, làm việc tại Mỹ, bắt đầu sản xuất bảng cho các trò chơi phổ biến, vào năm
1871, hoàn thiện chúng, thay thế lỗ (bỏ túi) vào mùa xuân (cản), và cue pít tông.Bây giờ các cầu thủ chạy bóng bằng pít tông trên một sân chơi nghiêng Cơ chếnày vẫn còn thành phần chính của tất cả các máy pinball Giới thiệu này không chỉlàm cho trò chơi thêm chức năng thuận tiện, nhưng cũng làm giảm các bảng chơigame, và bảng điều khiển phía trên, bạn có thể nhìn thấy những điểm truy cập.Montague Redgrave phát minh chính thức ra đời pinball Máy một máy pinball cóthể được tìm thấy trong tất cả các nước châu Âu, nhưng pinball chơi trực tuyến,bạn có thể chỉ đơn giản là ở nhà Nội quy của các phiên bản máy tính của các quytắc của trò chơi thực tế được lặp đi lặp lại trên máy Nhiệm vụ của bạn là để thuthập như nhiều điểm Phần thứ hai của trò chơi là, với quả bóng phụ để mở rộngcác trò chơi càng lâu càng tốt, đó là để giữ cho quả bóng trên lĩnh vực này cànglâu càng tốt và có cơ hội để chơi trò chơi tiền thưởng miễn phí (phát lại) Pinballmáy tính - là một trò chơi arcade, nơi bạn có để chơi một hay nhiều quả bóng sắt,giữ cho chúng trên sân chơi và tại các điểm đạt được cùng một trò chơi Trò chơiđược dựa trên phiên bản cổ điển rất nhiều, nhưng nguyên tắc vẫn giữ nguyên.Người hâm mộ có thể hiển thị sắc nét tổng thể ít lớp để tiêu diệt các zombie Bạn
sẽ lái xe lõi sắt của nghĩa trang giữa hầm mộ Theo ý của bạn ba quả bóng và quânđội của zombies đói, biến thành một mớ hỗn độn đẫm máu, bạn đạt được điểm
Trang 6màu xanh lá cây, bóng trong vở kịch Đó là chỉ có cầu thủ trên sân không ở tất cả,
và thay vào đó là đòn bẩy sẽ giúp bạn tránh được những mục tiêu tại các cửa củabạn Pinball, nơi lề đáy biển với các cư dân của nó, trông rất sống động và đầymàu sắc Giữ bóng trên sàn nhà, có nghĩa là, trên lĩnh vực này càng lâu càng tốt và
gõ vào điểm số của họ Pinball trò chơi trong thể loại đua hoặc công viên cũng có
vẻ như một giải pháp tốt Pinball chủ đề Giáng sinh hoặc trong các thác nước sẽsáng lên thời gian giải trí của bạn và nâng cao tinh thần Mang xuống và thu thậpquà tặng, hoa quả và quả mọng, mà sẽ mang lại cho bạn điểm Chọn bất kỳ phiênbản của chính mình và bắt đầu chơi pinball trực tuyến miễn phí Đẹp, đồ họa tươisáng sẽ làm hài lòng mắt, và nền âm nhạc Thưởng thức nghe Pinball trò chơi sẽ làmột cách tốt để dành nhiều thời gian ở nhà, văn phòng hoặc thậm chí trong giaothông
1.2.Ứng Dụng.
Ngày nay, đồ họa máy tính được sử dụng rộng rãi trong nhiều lĩnh vực khác nhaunhư công nghiệp, thương mại, quản lý, giáo dục, giải trí, Sau đây là một số ứngdụng tiêu biểu:
- Tạo giao diện (User Interfaces): như các chương trình ứng dụngWINDOWS, WINWORD, EXCEL đang được đa số người sử dụng ưa chuộngnhờ tính thân thiện, dể sử dụng
- Tạo ra các biểu đồ dùng trong thương mại, khoa học và kỹ thuật: Các biểuđồđược
tạo ra rất đa dạng, phong phú bao gồm cả hai chiều lẫn ba chiều góp phần thúc đẩy
xu hướng phát triển các mô hình dữ liệu hổ trợđắc lực cho việc phân tích thông tin
và trợ giúp ra quyết định
- Tự động hóa văn phòng và chế bản điện tử: dùng những ứng dụng của đồ họa để
in ấn các tài liệu với nhiều loại dữ liệu khác nhau như: văn bản, biểu đồ, đồ thị vànhiều loại hình ảnh khác
- Thiết kế với sự trợ giúp của máy tính (Computer aided design): Một trong nhữnglợi
ích lớn nhất của máy tính là trợ giúp con người trong việc thiết kế Các ứng dụng
đồ họa cho phép chúng ta thiết kế các thiết bị cơ khí, điện, điện tử, ô
tô, máy bay, như phần mềm AUTOCAD
- Lĩnh vực giải trí, nghệ thuật: Các phần mềm PAINTBRUSH,CORELDRAW,
Trang 7PHOTOSHOP cho phép tạo ra các hình ảnh trực quan trên màn hình của máytính, người họa sĩ có thể tự pha màu, trộn màu, thực hiện một số thao tác: cắt, dán,tẩy, xóa, phóng to, thu nhỏ Ngoài ra hiện nay còn có hàng triệu game onlinecũng như offline phục vụ trong việc giải trí
- Lĩnh vực bản đồ: xây dựng và in ấn các bản đồ địa lý Một trong những ứngdụng hiện nay của đồ họa là hệ thống thông tin địa lý (GIS - GeographicalInformation System)
1.3 Các lĩnh vực nghiên cứu
Hình 1.1 – Các lĩnh vực nghiên cứu của đồ họa máy tính
- Các hệ CAD/CAM (CAD – Computer Aided Design, CAM – Computer AidedManufacture)
Các hệ này xây dựng tập hợp các công cụ đồ họa trợ giúp cho việc thiết kế cácchi tiết và các hệ thống khác nhau: các thiết bị cơ khí, điện tử Chẳng hạn nhưphần mềm AutoCad của hảng AutoDesk
- Xử lý ảnh (Image Processing)
Đây là lĩnh vực xử lý các dữ liệu ảnh trong cuộc sống Sau quá trình xử lý ảnh,
dữ liệu đầu ra là ảnh của đối tượng Trong quá trình xử lý ảnh, chúng ta sẽ sử dụngrất nhiều các kỹ thuật phức tạp: khôi phục ảnh, xác định biên
Ví dụ: phần mềm PhotoShop, Corel Draw,
Trang 8- Khoa học nhận dạng (Pattern Recognition)
Nhận dạng là một lĩnh vực trong kỹ thuật xử lý ảnh Từ những mẫu ảnh có sẵn,
ta phân loại theo cấu trúc hoặc theo các phương pháp xác định nào đó và bằng cácthuật toán chọn lọc để có thể phân tích hay tổng hợp ảnh đã cho thành một tập hợpcác ảnh gốc, các ảnh gốc này được lưu trong một thư viện và căn cứ vào thư việnnày để nhận dạng các ảnh khác
Ví dụ: Phần mềm nhận dạng chữ viết (VnDOCR) của viện Công nghệ Thông tin
Hà Nội, nhận dạng vân tay, nhận dạng mặt người trong khoa học hình sự
- Đồ họa minh họa (Presentation Graphics)
Đây là lĩnh vực đồ họa bao gồm các công cụ trợ giúp cho việc hiển thị các số liệuthống kê một cách trực quan thông qua các mẫu đồ thị hoặc biểu đồ có sẵn Chẳnghạn như các biểu đồ (Chart) trong các phần mềm Word, Excel
- Hoạt hình và nghệ thuật
Lĩnh vực đồ họa này bao gồm các công cụ giúp cho các họa sĩ, các nhà thiết kếphim ảnh chuyên nghiệp thực hiện các công việc của mình thông qua các kỹ xảo
vẽ tranh, hoạt hình hoặc các kỹ xảo điện ảnh khác
Ví dụ: Phần mềm xử lý các kỹ xảo hoạt hình như 3D Animation, 3D StudioMax , phần mềm xử lý các kỹ xảo điện ảnh: Adobe Primiere, Cool 3D,
- Kỹ thuật phân tích và tạo ảnh (tổng hợp ảnh - Image Synthesis): là lĩnh vực xâydựng mô hình và hình ảnh của các vật thể dựa trên các đối tượng và mối quan hệgiữa chúng
1.4.Tổng quan về trò chơi.
Pinball,cái tên hẳn không còn xa lạ Một trò chơi từng ngốn rất nhiều thời gian , gắn chặt chúng ta vào những chiếc điện thoại nokia hay những chiếc máy tính đời cũ.Pinball phổ biến đến mức mỗi phiên bản Window đều mặc định cài đặtphiên bản 2D đơn giản bên cạnh trò bài lá…
Nhiệm vụ của người chơi là điều khiển nhịp nhàng thanh ngang bên dưới(di chuyển sang trái hay sang phải) để đỡ quả bóng
Người chơi cố gắng đỡ trúng bóng để bóng di chuyển lên bên trên ghiđiểm các thanh ngang bên trên ,mỗi lần bóng lên trên đụng trúng thanhngang thì thanh ngang sẽ mất đi đồng thời bạn sẽ được 1 điểm
Nếu để bóng lọt qua thanh ngang bên dưới thì người chơi đã thua, trò chơi
sẽ dừng
Trang 91.5.Tóm tắt nội dung báo cáo:
- Chương 2: Phân Tích
- Chương 3: Cài Đặt Chương Trình
- Chương 4: Kết Luận
Trang 10CHƯƠNG II: PHÂN TÍCH 1.1 Các phép vẽ hình cơ bản
1.1.1.Vẽ hình tròn
Thuật toán Bresenham
Phương trình đường tròn đi qua tâm có tọa độ (xc , yc) là:
(x - xc)2 + (y - yc)2 = R2
Hình tròn là hình đối xứng tâm
Hình 2.1 Các vị trí đối xứng trên đường tròn (C) tương ứng với (x,y)
Để đơn giản ta xét tâm trùng với gốc 0: x2 + y2 = R2
Ta xét các điểm tạo ra từ góc phần tư thứ 2: từ 900 đến 450 , thực hiện theo hướng+x, -y
Do tính đỗi xứng của đường tròn nên nếu điểm (x,y)∈(C) thì các điểm (y,x), (-y,x), (-x,y), (-x,-y), (-y,-x), (y,-x), (x,-y) cũng ∈ (C)
Vì vậy, ta chỉ cần vẽ một phần 8 cung tròn sau đó lấy đối xứng qua gốc O và 2trục tọa độ thì ta có được toàn bộ đường tròn
Giả sử (xi , yi) đã vẽ được Cần chọn điểm kế tiếp là (xi + 1, yi) hoặc (xi + 1, yi - 1)
Trang 11Từ phương trình x2 + y2 = R2 ta tính được giá trị y tương ứng với tọa độ xi + 1 là:
i - y2
i ) - 2.(yi+ 1 - yi) = pi + 4xi + 6 + 2.(y2
1 +
i - y2
i ) - 2.(yi+ 1 - yi)
Ta xét:
• Nếu pi < 0: chọn điểm nằm ngoài đường tròn yi+1 =yi
• Nếu pi ≥ 0: chọn điểm nằm trong đường tròn yi+1 =yi + 1
Ta chọn điểm đầu cần vẽ (0, R), ta có: p1 = 3 – 2R
Tóm lại ta có thuật toán vẽ đường tròn:
• Bước 1 chọn điểm đầu cần vẽ: (x1,y1) = (0,R)
• Bước 2 Tính P đầu tiên: p1 = 3 – 2R
Nếu pi < 0: chọn điểm kê tiếp là (xi +1, yi) Ngược lại thì chọn điểm (xi + 1,yi 1)
-• Bước 4 Lặp lại bước 3 cho đên khi x = y.
Thuật toán cài đặt
Trang 12voidcircle (int xc, int yc, int r){
Thuật toán cài đặt
void rectangle(int x1,int y1,int x2,int y2)
Trang 13• x, y: tọa độ theo trục x, y.
• giá trị trả về là màu tương ứng
Trang 14 Hàm Setcolor()
Hàm thực hiện công việc: đặt màu vẽ hiện tại Hàm có dạng:
setcolor(color)Trong đó:
• color: màu mà ta muốn đặt
Hàm Setfillstyle()
Hàm thực hiện công việc: đặt mẫu và màu tô Hàm có dạng:
setfillstyle(style,color)Trong đó:
• style: kiểu mẫu muốn đặt
• color: màu muốn đặt
3.1 Bảng giá trị màu sử dụng trong thư viện graphics.h
Trang 17int xpad = getmaxx()/2 - 20;
int ypad = getmaxy() - 11;
for(j=0;j<12;j++){
Trang 18case 72: ch++; break; /*up key*/
case 80: ch ; break; /*down key*/
case 13: /*enter key*/
Trang 19int dx, dy, x, y, dung = 0, i;int by,midx,midy;
int xpad, ypad;
Trang 20srand(time(0));//srand() voi tham so là time() thay cho randomize khoi dong hàmrandom()
Trang 22outtextxy(getmaxx()/2-60,getmaxy()/2-27,"PAUSED");
setcolor(13);
setfillstyle(SOLID_FILL, BALLCOLOR);
fillellipse(x, y, RADIUS, RADIUS);
rectangle(xpad-30, ypad, xpad + 70, ypad+10);///thanh do bong
Trang 23CHƯƠNG III: CÀI ĐẶT CHƯƠNG TRÌNH 3.1.Giới thiệu về ngôn ngữ lập trình.
Ngôn ngữ lập trình (NNLT) C/C++ là một trong những ngôn ngữ lập trìnhhướng đối tượng mạnh và phổ biến hiện nay do tính mềm dẻo và đa năng của nó.Không chỉ các ứng dụng được viết trên C/C++ mà cả những chương trình hệ thốnglớn đều được viết hầu hết trên C/C++ C++ là ngôn ngữ lập trình hướng đối tượngđược phát triển trên nền tảng của C, không những khắc phục một số nhược điểmcủa ngôn ngữ C mà quan trọng hơn, C++ cung cấp cho người sử dụng (NSD) mộtphương tiện lập trình theo kỹ thuật mới: lập trình hướng đối tượng Đây là kỹ thuậtlập trình được sử dụng hầu hết trong các ngôn ngữ mạnh hiện nay
3.2 Giao diện chương trình
Các thuật toán các phép biến hình được Demo thành chương trình bằng ngônngữ C++ Đầu tiên giao diện chương trình sẽ xuất hiện
Hình 3.1.Chương trình chính của trò chơi pinball.
Trang 25int dx, dy, x, y, dung = 0, i;int by,midx,midy;
int xpad, ypad;
{
dx = -dx;
x += 2 * dx;
dung = 1;
Trang 26if ((getpixel(x,y-11)>=10)||(getpixel(x,y+11)>=10) ||y<10)//gioi han tren duoi || y
Trang 27setfillstyle(SOLID_FILL, BALLCOLOR);
fillellipse(x, y, RADIUS, RADIUS);
rectangle(xpad-30, ypad, xpad + 70, ypad+10);///thanh dobong