1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO CÁO CHUYÊN đề HỌC PHẦN đồ HỌA MÁY TÍNH đề TÀI mô phỏng sự di chuyển của hành tinh

22 9 0

Đ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

Tiêu đề Mô Phỏng Sự Di Chuyển Của Hành Tinh
Tác giả Đặng Cao Minh
Trường học Trường Đại Học Điện Lực
Chuyên ngành Công Nghệ Phần Mềm
Thể loại Báo cáo chuyên đề học phần
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 22
Dung lượng 1,13 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

THUẬT TOÁN CƠ BẢN TRONG ĐỒ HỌA 2D 1.1 Thuật toán vẽ đoạn thẳng 1.1.1 Thuật toán DDA Digital Defferencial Analyzer hay thuật toán tăng dần BasicIncremental Algorithm 1.1.2 Thuật toán Bres

Trang 1

TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN

ĐỒ HỌA MÁY TÍNH

ĐỀ TÀI:

Mô phỏng sự di chuyển của hành tinh

Sinh viên thực hiện : Đặng Cao Minh

Hà Nội, tháng 6 năm 2022

Trang 3

0 | P a g e

Trang 4

MỤC LỤC

LỜI CẢM ƠN

LỜI MỞ ĐẦU

CHƯƠNG 1 THUẬT TOÁN CƠ BẢN TRONG ĐỒ HỌA 2D

1.1 Thuật toán vẽ đoạn thẳng

1.1.1 Thuật toán DDA (Digital Defferencial Analyzer) hay thuật toán tăng dần (BasicIncremental Algorithm)

1.1.2 Thuật toán Bresenham vẽ đường thẳng

1.1.3 Thuật toán trung điểm vẽ đường thẳng

1.1.4 Thuật toán vẽ đường tròn ,elip

1.1.4.1 Thuật toán Bresenham vẽ đường tròn

1.1.4.2 Thuật toán trung điểm vẽ đường tròn

1.1.4.3 Thuật toán trung điểm vẽ elip

CHƯƠNG 2 PHÁT TRIỂN ỨNG DỤNG 3D

2.1 Mô tả bài toán

2.2 Mô tả chuyển động của hai hành tinh

Trang 5

2 | P a g e

Trang 6

LỜI MỞ ĐẦ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 ngày nay được ứng dụng rất rộng rãi trong nhiều lĩnh vực khoa học, kĩ thuật, nghệ thuật, kinh doanh, quản lí, … Các ứng dụng đồ họa rất đa dạng, phong phú và phát triển liên tục không ngừng Ngày nay, hầu như không có

chương trình ứng dụng nào mà không sử dụng kĩ thuật đồ họa để làm tăng tính hấpdẫn của mình

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ác chươ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 sang tạo và nâng cao năng suất làm việc

Là sinh viên chúng em được tìm hiểu và làm quen với một số kĩ thuật đồ họa trên

máy tính thông qua tài liệu, bài giảng do thầy Ngô Trường Giang giảng dạy Với

những kiến thức đã học em quyết định chọn đề tài: Xây dựng mô hình mô phỏng chuyển động 2 hành tinh bằng OpenGL hiện đại

Trang 7

CHƯƠNG 1 THUẬT TOÁN CƠ BẢN TRONG

ĐỒ HỌA 2D 1.1 Thuật toán vẽ đoạn thẳng

1.1.1 Thuật toán DDA (Digital Defferencial Analyzer) hay thuật toán tăng dần (Basic Incremental Algorithm)

Input: Điểm đầu(x1,y1), điểm cuối(x2,y2), màu tô C

Output: Đoạn thẳng nối 2 điểm (x1,y1) (x2,y2) với

màu C

Phương trình đoạn thẳng đi qua 2 điểm

Chuyển đổi đường quét (Rasterization)

Biến đổi đường liên tục thành rời rạc(Sampling)

Scan conversion = Sampling

Yêu cầu chất lượng đường vẽ

-Hình dạng liên tục

-Độ dày và độ sáng đều

-Các pixel gần đường”lí tưởng “ được hiển thị

-Vẽ nhanh

DDA- Digital Differential Analyzer = Finite defferences

Cho giá trị bước nhảy trên một trục tính giá trị bước nhảy trên trục kia theo phươngtrình y=ax+b

Trang 8

Với hệ số góc a nằm trong khoảng [0,1]

-dy=a.dx

-Nếu dx = 1 thì y(i+1)=y(i)+a

-Làm tròn vì số a bất kì

-Ý tưởng thuật toán: với mỗi bước hãy tính số gia trên cơ sở bước trước đó

Nhận xét thuật toán DDA:

-Không có phép nhân

-Có phép chia và làm tròn số >chậm

Qui tắc tổng quát khi vẽ đồ họa

-Cộng và trừ nhanh hơn nhân

-Nhân nhanh hơn chia

-Sử dụng bảng để đánh giá hàm rời rạc nhanh hơn tính toán

-Tính toán số nguyên nhanh hơn số thực

-Tránh các tính toán không cần thiết nhờ nhận ra các trường hợp đặc biệt của đường vẽ

1.1.2 Thuật toán Bresenham vẽ đường thẳng

Giả sử vừa vẽ điểm tại (xi,yi) bây giờ phải xác định điểm sẽ vẽ thuộc 1 trong 8 pixel liền kề (xi+1,yi),(xi-1,yi),(xi,yi-1),(xi,yi+1),

Trang 9

Hình dạng đoạn thẳng phụ thuộc vào các giá trị dx và dy

-dx=0 đường thẳng song song trục y

-dy=0 đường thẳng song song trục x

-dx>0 tọa độ x biến thiên tăng dần

-dx<0 tọa độ x biến thiên giảm dần

-Xét tương tự với dy

-Nếu abs(dx)>abs(dy) : y=f(x)

- Nếu abs(dx)<abs(dy) : x=f(y)

Xét đoạn thẳng có hệ số góc 0≤m≤1

Trang 10

Điểm vừa chọn là (x,y) ->

điểm tiếp theo sẽ vẽ là (x+1,y)

hay (x+1, y+1) Việc lựa chọn

sẽ phụ thuộc vào khoảng cách

d: d=d1-d2

-Nếu d>0 ó d1>d2 chọn NE xi+1,yi

-Nếu d<0 ó d1<d2 chọn E xi+1,y +1i

+d1=y +1-y=y +1-a(x +1)-bi i i

+d2=y-y =a(x +1)+b-yi i i

+d=d1-d2=-2a(x +1)+2y -2b+1i i

-Nếu chọn E => dnewE= d(xi+1,yi+1 )

=-2a(x +1)+2yi i-2b+1 +2-2a= d+2-2a=d+ ∆E

-Nếu chọn NE => dnewNE= d(xi+1,y )i

=-2a(x +1)+2yi i-2b+1 -2a= d-2a=d+ ∆NE

-Tìm dstart

-Giả sử điểm khởi đầu là xi,yi

dstart= -2a(xi+1)+2y -2b+1i

-Mà ta có yi=axi+b => axi=y -bi

dstart =-2a+1

Ta có a=dy/dx Nhân các vế với dx ta có

Trang 11

Nếu d >0 vị trí vẽ tiếp theo là xi+1,yi

Ngược lại vị trí vẽ tiếp theo là xi+1,y +1i

3. Tiếp tục tăng x để tính d tiếp theo từ d trước đó

Nếu trước đó d >0 thì di i+1=d -2dyi

Ngược lại thì di+1=di-2dy+2dx n Nếu d vị trí vẽ tiếp theo là xi+1 i+2,yi

Ngược lại vị trí vẽ tiếp theo là xi+2,y +2i

4. Lặp lại bước 3 cho đến khi x= x2

1.1.3 Thuật toán trung điểm vẽ đường thẳng

Pitteway công bố năm 1967 , Van Aken cải tiến năm 1984

Giả sử ta đã chọn P để vẽ , xác định pixel tiếp theo tại N hay NE

-Giao của đường thẳng với Xp+1 tại Q, M là trung điểm của NE và E

Ý tưởng : M nằm phía nào của đưởng thẳng ,nếu M phía trên đường thẳng thì chọnE,ngược lại chọn NE

Nhiệm vụ : Xác định M ở đâu

Phương trình đường thẳng F(x,y) = ax+by+c

a = dy ,b=-dx,c=B.dx

Trang 12

Giá trị hàm tại M: F(M) = F(xp+1,yp+1/2)=d

Nếu d>0 ,M nằm dưới đường thẳng chọn NE

Nếu d<0 M nằm phía trên chọn E

Nếu d=0 chọn E hay NE tùy ý

Trang 13

1.1.4 Thuật toán vẽ đường tròn ,elip

Một số tính chất của đường tròn

1.1.4.1 Thuật toán Bresenham vẽ đường tròn

Trang 14

1.1.4.2 Thuật toán trung điểm vẽ đường tròn

t

Trang 15

1.1.4.3 Thuật toán trung điểm vẽ elip

Trang 18

CHƯƠNG 2 PHÁT TRIỂN ỨNG DỤNG 3D

2.1 Mô tả bài toán

Vũ trụ là một khái niệm khá trừu tượng , ngay cả trên trái đất cũng có quá nhiều

bí ẩn mà con người chưa khám phá đc , tuy nhiên con người vẫn không ngừng pháttriển các công cụ để khai thác đc những thông tin mà họ có được từ vũ trụ , từkhông gian hay địa hình , tất cả những điểu đó góp phần tạo ra 1 bản mô phỏngcung cấp nhiều thông tin và cái nhìn trực quan hơn về vũ trụ

Với những công nghệ và thông tin mà chúng ta đã có , những mô hình 3d đượcdựng lên, mô hình hoạt động , hay mô hình bề mặt , khi có những thứ này conngười sẽ tận hưởng được nhiều lợi ích như:

- Hiểu được kích thước thực tế của 1 hành tinh , cách hoạt động , chu kì quay

- Kích thích khả năng khám phá và tự học hỏi của con người

- Có thể sử dụng làm công cụ dạy học hay dùng để dự báo địa chấn , dự báo thờitiết , thiên tai

- Sử dụng trong lĩnh vực thiên văn học , giúp con người có thể chạm tới những vìsao

Chuyển động của các hành tinh luôn được mọi người chú ý vì nó có thể coi là hoạtđộng cơ bản của một tinh cầu , tuy nhiên , mỗi hành tinh có 1 các chuyển độngkhác nhau , mà thông qua việc quan sát các thức hoạt động cùng vs đo đường kính, diện thích , khối lượng và căn cứ vào số lượng khoáng chất có trong hành tinh mnta đã xây dựng 1 công thức chuyển động vô cùng phức tạp cho mỗi hành tinh , do

đó việc tái dựng lại mô hình chuyển động này sẽ không được ứng dụng công thứcquay chuẩn xác mà chỉ là công thức gần đúng

2.2 Mô tả chuyển động của 2 hành tinh.

 Em tiến hành mô tả 2 hoạt động phổ biến nhất trong chuyển động của hànhtinh là :

- Hành có thể quay theo quỹ đạo 360 o

- Hành tinh có thể quay quanh trục của chính nó

 Mô tả chi tiết từng chuyển động

Hành tinh ở trục tọa độ đc coi là trái đất , hành tinh còn lại là mặt trăng

Hiện tại thì chuyển động của chúng đc vận hành bởi hàm timer

Trang 19

2.2.1 Phép biến đổi

- Phép quay

+ Phép quay quanh trục OX

+ Phép quay quanh trục OY

+ Phép quay quanh trục OZ

Trang 20

KẾT LUẬN

Trang 21

Trên đây là toàn bộ nội dung báo cáo thực hiện những vấn đề nêu lên ở phần đầu

Đó là minh chứng rõ rệt cho sự cố gắng, quyết tâm cũng như đánh giá khả năng hiểu biết, kiến thức của em trong việc tìm hiểu đồ họa hiện tại và xây dựng đồ họa mới nhằm đáp ứng nhu cầu thực tiễn

Đồng thời, qua bài báo cáo trên cũng đã giúp cho chúng em học hỏi được thêm nhiều kiến thức mới mẻ, nâng cao tính tự giác, tinh thần đoàn kết và nâng cao khả năng làm việc nhóm Giúp có thêm kinh nghiệm đi khảo sát thực tế và được trau dồi khả năng phân tích, đánh giá về nhiều khía cạnh, tiếp cận với người dùng, người dùng Thêm vào đó, là giúp cho em hiểu rõ hơn về ngôn ngữ lập trình, công

cụ mà mình đang sử dụng, cũng như lý thuyết, phương pháp tìm hiểu về tính đặc trù của lập trình đồ họa

Trong quá trình tìm hiểu và làm bài, em đã cố gắng hoàn thiện bài làm và hoàn thiện mình hơn về mặt kiến thức Nhưng cũng không thể tránh khỏi những sai sót, mong thầy cô và các bạn góp ý để bài của nhóm hoàn thiện hơn

Em xin chân thành cảm ơn!

Trang 22

Tài Liệu Tham Khảo1.Slide bài giảng thầy Ngô Trường Giang

2.OpenGL_Basic.PDF

Ngày đăng: 19/06/2022, 06:37

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w