ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
-------------- -------------
BÁO CÁO BÀI TẬP LỚN
Đề bài
Mô phỏng chuyển động rơi của lá cây
Môn: Đồ Họa Máy Tính
Giảng viên: ThS.Đào Minh Thư
Thành viên nhóm
1. Nguyễn Xuân Hải
2. Hoàng Minh Phúc
3. Dương Hồng Hạnh
4. Thiều Mạnh Hùng
Hà Nội, 2013
Thành viên của nhóm
1. Nhóm trưởng : Nguyễn Xuân Hải
MSSV : 10020109
SĐT : 01647079192
Email :
2. Hoàng Minh Phúc
MSSV : 10020259
SĐT: 01663731892
3. Dương Hồng Hạnh
MSSV : 10020115
SĐT : 01685433685
4. Thiều Mạnh Hùng
MSSV : 10020169
SĐT : 0985950486
Nội dung
1 . Mô tả chương trình
Yêu cầu của chương trình:
- Mô phỏng scence gồm có tree và thể hiện được các yếu tố như gió, ánh
sáng.
- Mô phỏng chuyển động rơi của lá cây có tác động của gió, lực cản không
khí.
- Thay đổi được góc nhìn tùy ý.
Mô tả chức năng của chương trình:
-
Sử dụng phím F1 để xem toàn màn hình.
- Sau khi chạy chương trình, click chuột trái để bắt đầu việc mô phỏng
chuyển động rơi của lá cây. Sẽ có nhiều lá, và mỗi lá có 1 khoảng thời gian
chuyển màu từ xanh sang vàng khác nhau. Cứ sau một khoảng thời gian,
màu của các lá sẽ thay đổi, khi chuyển hẳn thành màu vàng thì lá sẽ rơi, lá
nào ngả màu vàng trước sẽ rơi trước. Việc chọn tọa độ rơi của lá cây là
ngẫu nhiên để mô phỏng sự ảnh hưởng của gió.
- Hướng gió cũng được tạo ngẫu nhiên. Có 2 hướng gió chính (quan sát tại
vị trí đối diện với ngôi nhà – vị trí ban đầu):
Hướng theo trục x: (trục nằm ngang) gọi là windx
Hướng theo trục z: (trục vuông góc với màn hình) gọi là windz
Với mỗi hướng trên, có 3 trường hợp xảy ra:
windx: từ trái qua phải, từ phải qua trái và không có gió.
windz: từ trước ra sau, từ sau ra trước và không có gió.
Kết hợp lại ta có tất cả 9 hướng gió (xem hình vẽ để biết thêm chi tiết).
Người dùng có thể thay đổi bằng cách sử dụng phím PageUp (thay đổi
windx) và PageDown (thay đổi windz).
- Dùng 4 phím mũi tên (lên, xuống, trái, phải) để thay đổi góc nhìn.
- Dùng phím Enter để bắt đầu lại từ đầu.
- Nhấn phím Esc để thoát.
(Có hướng dẫn sử dụng tại màn hình Console)
Một số hình ảnh của chương trình
Ban đầu khi chưa click chuột
Lá vàng sau đó bắt đầu rơi
Quan sát từ trên cao
Gió thổi từ trước ra sau
Gió thổi từ sau ra trước
Gió thổi từ phải qua trái
Gió thổi từ trái qua phải
Không có gió
Mô tả cài đặt các lớp chính:
Lớp Leaf: mô phỏng chiếc lá
o Các thuộc tính:
Tọa độ của lá (x, y, z) kiểu GLfloat
Đối tượng model kiểu GLMmodel, dùng để load file Obj chứa
chiếc lá
o Các hàm:
set(file) : load file Obj
clone(myLeaf) : tạo bản sao. Vì có nhiều lá nên để tranh phải
load lại cùng 1 file Obj nhiều lần. Chỉ cần một model load file
Obj, các đối tượng model của các lá đều tham chiếu đến cùng
đối tượng model đó.
setPosition(x1, y1, z1) : di chuyển lá đến vị trí (x1, y1, z1)
các hàm getX(), getY(), getZ() để lấy tọa độ x, y, z của lá
drawModel(x1, y1, z1) : thực hiện vẽ chiếc lá tại vị trí cách vị
trí hiện tại của lá một khoảng (x1, y1, z1). Trong hàm này, có
hàm glScalef() để co kích thước của lá lại cho nhỏ đi.
Lớp House: mô phỏng nhà và cây
o Các thuộc tính:
Tọa độ của nhà và cây (x, y, z) kiểu GLfloat
Đối tượng model kiểu GLMmodel, dùng để load file Obj chứa
ngôi nhà và cây
o Các hàm:
set(file, x1, y1, z1): load file Obj và đặt vật thể tại vị trí (x1,
y1, z1)
drawModel(x1, y1, z1): thực hiện vẽ nhà và cây tại vị trí cách
vị trí hiện tại một khoảng (x1, y1, z1). Trong hàm này, có hàm
glScalef() để tăng kích thước của nhà và cây.
2 . Phân công công việc
1. Yêu cầu chung cho tất cả các thành viên trong nhóm:
Tìm hiểu nội dung đề bài, các yêu cầu cũng như kiến thức cần sử dụng,
tổng hợp lại những vướng mắc để giải quyết, và cố gắng thực hiện tốt phần
việc của mình trước khi test để báo cáo.
2. Phân công công việc cho các thành viên như sau :
Code chính
- Người thực hiện :
Nguyễn Xuân Hải
- Nhiệm vụ :
Thực hiện thiết kế các lớp và code với mẫu thống nhất từ trước
đó
Tổng hợp toàn bộ code hoàn chỉnh của chương trình từ những
phần riêng của các thành viên khác trong nhóm.
Load file
- Người thực hiện :
Dương Hồng Hạnh
- Nhiệm vụ :
Thực hiện phần load file .obj, .mdl
Tìm file và xử lý dữ liệu của file để load thành công file cần thiết.
Chỉnh sửa ảnh
- Người thực hiện :
Thiều Mạnh Hùng
- Nhiệm vụ :
Dùng photoshop chỉnh sửa màu ảnh của các đối tượng sao cho
đẹp, hoàn chỉnh.
Xử lý các phím chức năng, click chuột.
Xứ lý các chức năng
- Người thực hiện :
Hoàng Minh Phúc và Nguyễn Xuân Hải, cùng với 2 bạn còn lại
tìm hiểu các hàm để đưa vào bài làm.
- Nhiệm vụ :
Xử lý chuyển động của lá cây, sự thay đổi màu sắc của lá cũng
như thời gian tự động chuyển màu (từ xanh sang vàng) của lá,
yếu tố gió, ánh sáng,
Viết báo cáo
- Người thực hiện: Hoàng Minh Phúc, Nguyễn Xuân Hải