Tải bản đầy đủ (.doc) (13 trang)

Viết chương trình mô phỏng sự va đập của một trái bóng trên màng hình

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (341.04 KB, 13 trang )

Trường Đại Học Công Nghiệp Hà Nội
Khoa Công Nghệ Thông Tin

BÀI TẬP
LỚN
Môn: Đồ
họa máy tính
Đề tài 6: Viết chương trình mô phỏng sự va đập của một
trái bóng trên màn hình
Giáo viên hướng dẫn:Nguyễn Thị Cẩm Ngoan
Sinh viên thực hiện:
1. Ngô Văn Linh
2. Chu Văn Thân
3. Ngô Thế Ánh
Hà Nội 2-2013
Đồ họa máy tính
Lời nói đầu
Đồ họa máy tính là một lĩnh vực của khoa học máy tính nghiên
cứu về cơ sở toán học, các thuật toán cũng như các kĩ thuật cho phép
tạo, hiển thị và điều khiển hình ảnh trên màn hình máy tính. Đồ họa
máy tính liên quan ít nhiều đến một số lĩnh vực như đại số, hình học
giải tích và hình học họa hình, quang học…… và kĩ thuật máy tính và
đặc biệt là chế tạo phần cứng ( các loại màn hình, các thiết bị nhập
xuất, các vi mạch đồ họa).
Nghiên cứu các phép biến đổi hình học trong không gian thực
hai chiều là một trong những nội dung quan trọng.
Qua thời gian tìm hiểu nhóm quyết định trọn đề tài Viết chương
trình mô phỏng sự va đập của một trái bóng trên màn hình. (Nếu gặp
đường biên màn hình thì đổi hướng chuyển động theo định luật phản
xạ ánh sang) nhằm mô phỏng cơ chế va đập của quả bóng trong không
gian thực hai chiều.


Do quá trình tìm hiểu còn nhiều thiếu sót nên chương trình còn
nhiều hạn chế, nhóm thực hiện rất mong nhận được ý kiến đóng góp
từ phía cô giáo và các bạn để phần mềm được hoàn thiện hơn.
Hà Nội, ngày 05 tháng 02 năm 2013
Nhóm 6-KTPM2-K6 ĐH Công Nghiệp Hà Nội
2
Đồ họa máy tính
MỤC LỤC
PHẦN 1: KHẢO SÁT 4
1.Mục đích nghiên cứu 4
2.Đối tượng nghiên cứu 4
3.Khảo sát 4
4.Hướng giải quyết 4
PHẦN 2: PHÂN TÍCH 5
1.Yêu cầu đề tài 5
2. Các hàm sử dụng 5
2.1 Hàm vẽ trái bóng 5
2.2 Hàm khởi tạo đồ họa 5
2.3 Chương trình chính 6
PHẦN 3: CÀI ĐẶT CHƯƠNG TRÌNH 8
3.Demo chương trình 11
Nhóm 6-KTPM2-K6 ĐH Công Nghiệp Hà Nội
3
Đồ họa máy tính
PHẦN 1: KHẢO SÁT
1. Mục đích nghiên cứu
Tạo ra những quả bóng có thể di chuyển và có sự va đập theo
định luật phản xạ ánh sáng. Giúp màn hình chờ máy tính có thêm một
tính năng, người dùng có thêm nhiều sự lựa chọn hơn.
2. Đối tượng nghiên cứu

Hướng đến tất cả mọi người sử dụng máy tính, đặc biệt là
những người tuổi nhỏ đang tuổi học hỏi. Giúp họ thấy thú vị và
hứng thú khi thấy sự va đập trong thế giới ảo, khiến họ tiềm hiểu
về chủ đề này.
3. Khảo sát
Qua khảo sát trên các máy tính sử dụng hệ điều hành Windows,
trên win xp thì không có hiệu ứng màn hình chờ quả bóng có sự va
đập trên màng hình, còn win 7,8 thì cũng đã có nhưng xuất hiện nhiều
quả bóng và một quả không tồn tại mãi.
Khảo sát cũng cho thấy trên hệ điều hành Windows 7,8 có hiệu
ứng sự va đập nhưng có sự xuất hiện của nhiều quả bóng. Trên hai hệ
điều hành này còn có thêm hiệu ứng gió thổi nên sẽ không thấy sự ổn
định chuyển động của quả bóng.
4. Hướng giải quyết
Khi máy không được sử dụng trong khoảng một thời gian mà
do người sử dụng quy định thì hiệu ứng của một quả bóng sẽ phát
huy tác dụng. Nó là phần mềm tiết kiệm tài nguyên, điện cho máy
tính. Một phần mềm gọn nhẹ giúp người sử dụng có những phút
thư giãn nhẹ nhàng.
Nhóm 6-KTPM2-K6 ĐH Công Nghiệp Hà Nội
4
Đồ họa máy tính
PHẦN 2: PHÂN TÍCH
1. Yêu cầu đề tài
Viết chương trình mô phỏng sự va đập của một trái bóng
trên màn hình. (Nếu gặp đường biên màn hình thì đổi
hướng chuyển động theo định luật phản xạ ánh sáng).
2. Các hàm sử dụng
2.1 Hàm vẽ trái bóng
void ve(int n)

{
setcolor(n);
//setbkcolor(3);
//floodfill(x,y,n);
circle(x,y,r);
}
2.2 Hàm khởi tạo đồ họa
void khoitao()// ham khoi tao che do do hoa
{ int gd,gmode;
gd=DETECT;
initgraph(&gd,&gmode,"c:\\tc\\bgi");//goi ham
khoi tao che do do hoa voi duong dan den tap tin
.BGI
int error;
error=graphresult();// lay ket qua cua thao tac khoi
tao
if(error!=0)
{
Nhóm 6-KTPM2-K6 ĐH Công Nghiệp Hà Nội
5
Đồ họa máy tính
cout<<"loi khi khoi tao do hoa\n";
getch();
exit(0);
}
}
2.3 Chương trình chính
int main()
{
khoitao();

x=0;y=0;r=40;dy=20;dx=20;
xx=40;yy=10;dxx=10;dyy=12;
do{
setcolor(12);
outtextxy(getmaxx()/2-100,80,"ket thuc khi nhan
phim bat ki!");
outtextxy(getmaxx()/2-100,getmaxy()/2,"writing by
nhom 6!");
ve(12);
delay(50);
ve(0);
y=y+dy;
x=x+dx;
xx+=dxx;yy+=dyy;
if(xx>=getmaxx()-100)
dxx=-dxx;
if(yy>getmaxx()-100)
dyy=-dyy;
if(xx<=0)
dxx=-dxx;
if(yy<=0)
dyy=-dyy;
if(y>=getmaxy())
dy=-dy;
Nhóm 6-KTPM2-K6 ĐH Công Nghiệp Hà Nội
6
Đồ họa máy tính
if(y<=0)
dy=-dy;
if(x>=getmaxx())

dx=-dx;
if(x<=0)
dx=-dx;
/* if(xx==x&&yy==y){
dx=-dx;
dxx=-dxx;
dyy=-dyy;
dy=-dy;
} */
}while(!kbhit());
getch();
closegraph();
return 0;
}
Nhóm 6-KTPM2-K6 ĐH Công Nghiệp Hà Nội
7
Đồ họa máy tính
PHẦN 3: CÀI ĐẶT CHƯƠNG TRÌNH
1. Giao diện chương trình
Thông qua menu chương trình chính để ta lựa chọn các thuật toán như các
phép biến hình cơ bản và các phép biến hình kết hợp…bằng cách nhấn các số từ
1→4 để lựa chọn . Minh họa màn hình giao diện xuất hiện như sau:
Đây là giao diện để vẽ một đa giác n đỉnh.
Danh sách các thành viên trong nhóm
Sau đó người dùng quay lại menu chính bằng cách nhấn phím số 1 hoặc số
2 để lựa chọn các phép biến hình
2. Cài đặt chương trình
#include <graphics.h>
#include <iostream.h>
#include <conio.h>

#include <stdlib.h>
#include <dos.h>
int x,y,dx,dy,r,xx,yy,dxx,dyy;
void khoitao();
void ve(int);
int main()
{
khoitao();
x=0;y=0;r=40;dy=20;dx=20;
xx=40;yy=10;dxx=10;dyy=12;
do{
Nhóm 6-KTPM2-K6 ĐH Công Nghiệp Hà Nội
8
Đồ họa máy tính
setcolor(10);
outtextxy(getmaxx()/2-100,80,"ket thuc khi nhan phim bat ki!");
outtextxy(getmaxx()/2-100,getmaxy()/2,"nhom 6!");
ve(13);
delay(50);
ve(0);
y=y+dy;
x=x+dx;
xx+=dxx;yy+=dyy;
if(xx>=getmaxx()-100)
dxx=-dxx;
if(yy>getmaxx()-100)
dyy=-dyy;
if(xx<=0)
dxx=-dxx;
if(yy<=0)

dyy=-dyy;
if(y>=getmaxy())
dy=-dy;
if(y<=0)
dy=-dy;
if(x>=getmaxx())
dx=-dx;
if(x<=0)
dx=-dx;
/* if(xx==x&&yy==y){
dx=-dx;
dxx=-dxx;
dyy=-dyy;
Nhóm 6-KTPM2-K6 ĐH Công Nghiệp Hà Nội
9
Đồ họa máy tính
dy=-dy;
} */
}while(!kbhit());
getch();
closegraph();
return 0;
}
void khoitao()
{ int gd,gmode;
gd=DETECT;
initgraph(&gd,&gmode,"c:\\tc\\bgi");
int error;
error=graphresult();
if(error!=0)

{
cout<<"loi khi khoi tao do hoa\n";
getch();
exit(0);
}
}
void ve(int n)
{
setcolor(n);
circle(x,y,r);
}
Nhóm 6-KTPM2-K6 ĐH Công Nghiệp Hà Nội
10
Đồ họa máy tính
3. Demo chương trình
Nhóm 6-KTPM2-K6 ĐH Công Nghiệp Hà Nội
11
Đồ họa máy tính
Nhóm 6-KTPM2-K6 ĐH Công Nghiệp Hà Nội
12
Đồ họa máy tính
TỰ ĐÁNH GIÁ
Ưu điểm : - Thiết thực dễ dàng sử dụng và nâng cấp
- Chiếm ít tài nguyên của máy.
-Tiết kiệm điện khi máy không được sử dụng.
Khuyết điểm : Còn thiếu 1 số chức năng.
Hướng phát triển : Trao đổi thông tin trên mạng.
KẾT LUẬN
Qua quá trình tìm hiểu và phân tích đề tài “Viết chương trình
mô phỏng sự va đập của một trái bóng trên màn hình. (Nếu gặp đường

biên màn hình thì đổi hướng chuyển động theo định luật phản xạ ánh
sang).” chúng em đã hiểu được cách phân tích và thiết kế một phần
mềm. Tuy nhiên do kiến thức còn hạn hẹp nên chúng em chưa thể
phân tích được sâu sắc hơn và đưa ra được một phần mềm hoàn chỉnh,
nhưng em mong rằng qua đề tài này các bạn có thể hiểu thêm về cách
mô phỏng sự va đập của một trái bóng trên màn hình.
Nhóm 6-KTPM2-K6 ĐH Công Nghiệp Hà Nội
13

×