1. Trang chủ
  2. » Công Nghệ Thông Tin

Báo cáo bài tập lớn Đồ họa máy tính Mô phỏng lá rơi

11 2K 8

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 11
Dung lượng 751,83 KB
File đính kèm The Last Leaf final.rar (5 MB)

Nội dung

Đây là báo cáo bài tập lớn môn Đồ họa máy tính Đề tài: Mô phỏng chuyển động của lá cây khi có gió thổi (có đính kèm source code bằng C++, sử dụng OpenGL)Đây là báo cáo bài tập lớn môn Đồ họa máy tính Đề tài: Mô phỏng chuyển động của lá cây khi có gió thổi (có đính kèm source code bằng C++, sử dụng OpenGL)

Trang 1

ĐẠ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

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

Trang 2

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 : xuanhai266@gmail.com

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

Trang 3

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

Trang 4

- 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

Trang 5

Quan sát từ trên cao

Gió thổi từ trước ra sau

Trang 6

Gió thổi từ sau ra trước

Gió thổi từ phải qua trái

Trang 7

Gió thổi từ trái qua phải

Không có gió

Trang 8

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)

Trang 9

 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

Trang 10

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ụ :

Trang 11

 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

Ngày đăng: 22/05/2016, 16:42

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w