1. Trang chủ
  2. » Luận Văn - Báo Cáo

đề tài xây dựng chương trình hiển thị đối tượng đồ họa tự xây dựng các hàm sử dụng ma trận biến đổi vật thể model transformation

36 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Nội dung

84-511 3842771 Website: http://dut.udn.vn/khoacntt, E-mail: cntt@dut.udn.vn BÁO CÁO MÔN HỌC ĐỒ HOẠ MÁY TÍNH ĐỀ TÀI:XÂY DỰNG CHƯƠNG TRÌNH HIỂN THỊ ĐỐI TƯỢNG ĐỒ HỌA, TỰ XÂY DỰNG CÁC HÀM SỬ

Trang 1

ĐẠI HỌC ĐÀ NẴNG

TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN

Tel (+84.0236) 3736949, Fax (84-511) 3842771 Website: http://dut.udn.vn/khoacntt, E-mail: cntt@dut.udn.vn

BÁO CÁO MÔN HỌC

ĐỒ HOẠ MÁY TÍNH

ĐỀ TÀI:XÂY DỰNG CHƯƠNG TRÌNH HIỂN THỊ ĐỐI TƯỢNG ĐỒ HỌA, TỰ XÂY DỰNG CÁC HÀM SỬ DỤNG MA TRẬN BIẾN

ĐỔI VẬT THỂ (MODEL TRANSFORMATION)

HỌ TÊN SINH VIÊN MÃ SINH VIÊN NHÓM

CBHD : PGS.TS Nguyễn Tấn Khôi

Đà Nẵng, 05/2023

Trang 2

MỤC LỤC

DANH SÁCH HÌNH ẢNH 2

MỞ ĐẦU 4CHƯƠNG 1:CƠ SỞ LÝ THUYẾT 6

1.1 CƠ SỞ LÝ THUYẾT 6

1.2 PHÁT BIỂU BÀI TOÁN 10

CHƯƠNG 2:PHÂN TÍCH THIẾT KẾ HỆ THỐNG 11

2.1 PHÁT BIỂU BÀI TOÁN 11

2.2 PHÂN TÍCH CHỨC NĂNG 12

2.3 KẾT CHƯƠNG 14

CHƯƠNG 3:TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ 15

3.1 MÔ HÌNH TRIỂN KHAI 15

3.2 KẾT QUẢ THỰC NGHIỆM 15

3.3 NHẬN XÉT ĐÁNH GIÁ KẾT QUẢ 19

3.4 KẾT CHƯƠNG 19

CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 20

TÀI LIỆU THAM KHẢO 21

CHƯƠNG 5: BÀI TẬP MÔN HỌC 22

5.1 BÀI TẬP TÍNH TOÁN ĐỒ HỌA MÁY TÍNH 22

5.2 BÀI TẬP CÁC PHÉP BIẾN ĐỔI ĐỒ HỌA 26

5.3 BÀI TẬP ĐƯỜNG, MẶT CONG THAM SỐ 30

5.4 BÀI TẬP THUẬT TOÁN CƠ BẢN VẼ ĐƯỜNG 31

Trang 3

DANH SÁCH HÌNH ẢNH

Hình 1 Tổng quan về Model Transformation

Hình 2 Các bước chính trong quá trình hiền thị đồ họa

Hình 3 Các đỉnh của khối lập phương được xác định trong World Space Hình 4 Các khối hình chữ nhật trong World Space

Hình 5 Biểu diễn các đối tượng trong Camera Space.

Trang 4

DANH SÁCH TỪ VIẾT TẮT

OpenGL Open Graphics Library

API Application Programming Interface GLUT OpenGL Utility Toolkit

URL Uniform Resource Locator

Trang 5

MỞ ĐẦU

1 Tổng quan về đề tài

Hiện nay, khoa học kỹ thuật ngày càng phát triển, hàng ngàn ứng dụng đồ họa 3D với khả năng tùy biến linh hoạt được ra đời nhằm mục đích phục vụ cho con người Đặc điểm chung của các ứng dụng đồ họa đó đều là mô phỏng thế giới thực thông qua thế giới ảo trên máy tính Để nắm bắt được xu thế hiện nay, chúng tôi cần phải tìm hiểu và nắm rõ bản chất cơ bản của việc dựng hình, và biến đổi vật thể trong không gian, hay còn gọi là Model Transformation

Và để làm rõ về Model Transformation chúng tôi đã nghiên cứu và xây dựng nên đề tài “Xây dựng chương trình hiển thị đối tượng đồ họa, tự xây dựng các hàm sử dụng ma trận biến đổi vật thể (Model Transformation)”

Trong đề tài này, chúng tôi sẽ xây dựng một chương trình hiển thị đối tượng đồ họa và sử dụng ma trận biến đổi vật thể để biến đổi các đối tượng đó trên màn hình Chương trình của chúng tôi sẽ được viết bằng ngôn ngữ lập trình C++ và sử dụng các thư viện đồ họa như OpenGL để hiển thị đối tượng trên màn hình

2 Mục đích và ý nghĩa của đề tài

- Tăng khả năng tạo ra các hiệu ứng đồ họa phức tạp: Việc tự xây dựng các hàm sử dụng ma trận biến đổi vật thể sẽ giúp người sử dụng tạo ra các hiệu

Trang 6

ứng đồ họa phức tạp và độc đáo hơn, từ đó tăng tính sáng tạo và thẩm mỹ cho các sản phẩm đồ họa

- Áp dụng được vào nhiều lĩnh vực của đời sống: Kỹ thuật ma trận biến đổi vật thể được sử dụng rộng rãi trong nhiều lĩnh vực của đời sống, từ thiết kế kiến trúc, sản xuất ô tô đến đồ họa máy tính, do đó đề tài có tính ứng dụng cao - Tạo điều kiện cho các nghiên cứu về đồ họa và khoa học máy tính: Các kỹ thuật liên quan đến đồ họa và khoa học máy tính đang phát triển rất nhanh, việc xây dựng chương trình hiển thị đối tượng đồ họa và sử dụng ma trận biến đổi vật thể sẽ giúp tạo điều kiện cho các nghiên cứu và phát triển trong lĩnh vực này

Chương 2: trình bày về phân tích và triển khai project, bao gồm phân tích hiện trạng, phân tích yêu cầu của bài toán Phần tiếp theo trình bày các nội dung thiết kế đề tài

Chương 3: trình bày về kết quả triển khai hệ thống, cấu hình hệ thống và các thành phần chức năng

Kết luận và hướng phát triển

Trang 7

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

1.1 CƠ SỞ LÝ THUYẾT

1.1.1 Tổng quan về Model Transformation

• Model transformation trong đồ họa 2D và 3D là quá trình thay đổi vị trí, quay, tỉ lệ hoặc biến dạng của các đối tượng trong không gian 2 chiều hoặc 3 chiều thông qua sử dụng vector biến đổi vật thể Vector biến đổi vật thể là một vectơ được sử dụng để áp dụng các phép biến đổi trên vật thể, bao gồm phép tịnh tiến (translation), phép xoay (rotation), phép co giãn (scaling), phép cắt tỉa (shearing) và các phép biến dạng (deformation)

• Các phép biến đổi này thường được áp dụng trên đối tượng 2D hoặc 3D để thay đổi vị trí, hướng, kích thước và hình dạng của đối tượng đó Các phép biến đổi này cũng có thể được kết hợp với nhau để tạo ra các phép biến đổi phức tạp hơn, như xoay và dịch chuyển đồng thời

Hình 1: Tổng quan về Model Transformation

1.1.2 Các bước chính trong quá trình hiển thị đồ họa

• Mỗi đối tượng được mô tả trong một hệ tọa độ riêng được gọi là hệ

tọa độ đối tượng/ Hệ tọa độ cục bộ

Trang 8

• Thực hiện biến đổi từ hệ tọa độ đối tượng sang hệ tọa độ thế giới

thực

• Khi biểu diển đối tượng ta có thể chọn gốc tọa độ và đơn vị đo

lượng sao cho việc biểu diễn là thuận lợi nhất

• Thường chuẩn hóa kích thước của đối tượng khi biểu diễn

Hình 2: Các bước chính trong quá trình hiền thị đồ họa

Trang 9

Ví dụ: Một khối lập phương được xác định bởi 8 đỉnh: (1, 1, 1), (-1, -1, -1),

(1, 1, -1) …Kết quả ta được khối lập phương 2x2x2, với tâm tại (0, 0, 0)

Hình 3: Các đỉnh của khối lập phương được xác định trong World Space

Geometry (hình học) thường được sử dụng nhiều lần trong cùng một kết xuất (rendering), ở các vị trí và kích thước khác nhau Việc định nghĩa lại các đỉnh riêng lẻ cho mỗi phiên bản của mô hình là tốn kém và không cần thiết Thay vào đó, một tập hợp các đỉnh hình học có thể được chia sẻ giữa nhiều phiên bản, và mỗi phiên bản áp dụng tập hợp các phép biến đổi riêng của nó lên tập hợp các đỉnh đó Các phép biến đổi này được biểu thị bằng một ma trận mô hình, và ma trận mô hình này sẽ biến đổi các đỉnh từ không gian mô hình sang không gian thế giới

Trang 10

Hình 4: Các khối hình chữ nhật trong World Space

• Một ma trận mô hình M được tạo ra bằng cách kết hợp ba phép biến đổi chính của một đối tượng: phép biến đổi vị trí (translation) T, phép biến đổi xoay (rotation) R và phép biến đổi tỉ lệ (scale) S Bằng cách nhân vị trí của một đỉnh với ma trận mô hình này, ta có thể biến đổi vector đó từ không gian địa phương (local space) của đối tượng sang không gian thế giới (world space)

Trang 11

Hình 5: Biểu diễn các đối tượng trong Camera Space

1.2 PHÁT BIỂU BÀI TOÁN

Đề tài yêu cầu xây dựng chương trình hiển thị đối tượng đồ họa, tự xây dựng các hàm sử dụng ma trận biến đổi vật thể (Model transformation) bằng cách:

• Vẽ một khối lập phương có cạnh a (với giá trị a nhập vào)

• Xây dựng các hàm biến đổi affine: tịnh tiến, đối xứng, tỉ lệ In các ma trận biến đổi tương ứng (myTranslate(); mySacle(), )

• Quay đối tượng một góc a (tự chọn) quanh một trục AB có A(xa, ya), B(xb, yb) In các ma trận biến đổi tương ứng (myRotate(), )

• Triển khai chạy chương trình, in hình ảnh kết quả, đánh giá, nhận xét

Trang 12

CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG

2.1 PHÁT BIỂU BÀI TOÁN 2.1.1 Phân tích đề tài

• Đề tài yêu cầu sử dụng các nguyên lý biến đổi bằng ma trận và thư viện hỗ trợ OpenGL để xây dựng chương trình thực hiện các phép biến đổi vật thể (tịnh tiến, tỉ lệ, quay, đối xứng)

2.1.2 Nghiên cứu và tìm hiểu thư viện mã nguồn mở OpenGL 2.1.2.1 Giới thiệu về OpenGL

• OpenGL (Open Graphics Library) là một tiêu chuẩn kỹ thuật đồ họa có mục đích định ra một giao diện lập trình ứng dụng (API) đồ họa ba chiều OpenGL cũng có thể được dùng trong các ứng dụng đồ họa 2 chiều Giao diện lập trình này chứa khoảng 250 hàm để vẽ các cảnh phức tạp từ những hàm đơn giản Nó được dùng rộng rãi trong các trò chơi điện tử Ngoài ra nó còn được dùng ứng dụng CAD, thực tại ảo, mô phỏng khoa học, mô phỏng thông tin, phát triển trò chơi

• OpenGL còn một đối thủ cạnh tranh là DirectX của Microsoft

2.1.2.2 Không gian trong OpenGL

• Không gian trong OpenGL được miêu tả qua hình học xạ ảnh Một điểm trong không gian này có tất cả 4 tọa độ Cách thể hiện các điểm trong không gian bằng 4 tọa độ cho phép xử lý các điểm vô tận một cách tổng quát Vì vậy mã nguồn các ứng dụng

đã được đơn giản hóa đi nhiều 2.1.2.3 Mục đích thiết kế

• OpenGL được thiết kế nhằm thoả mãn mục đích chính sau: ▪ Che dấu sự tương tác phức tạp với các bộ máy xúc tiến 3

chiều bằng cách đưa ra một giao diện lập trình thống nhất ▪ Che dấu các sự khác biệt giữa các phần cứng 3 chiều bằng cách bắt buộc các phần cứng tương thích OpenGL phải hỗ trợ tất cả các chức năng của giao diện OpenGL Nếu cần,

Trang 13

các chức năng chưa được hỗ trợ đầy đủ bởi phần cứng có thể được hỗ trợ bằng phần mềm

• Các thao tác OpenGL cơ bản là nhận các nguyên hàm hình học như điểm, đường thẳng và đa giác rồi chuyển thành các điểm đồ họa (pixel) trên màn hình

được xây dựng nên từ OpenGL GLUT (OpenGL Utility Toolkit) là một trong số đó và được sử dụng rộng rãi

2.1.2.5 Các trò chơi được viết với OpenGL

• Half-Life • Warcraft 3

• World of Warcraft • Counter Strike 1.6 • America's Army • City of Villains • Serious Sam

2.2 PHÂN TÍCH CHỨC NĂNG 2.2.1 Chức năng tịnh tiến

Chức năng này sẽ tiến hành xây dựng một ma trận tịnh tiến M theo công thức như sau:

Trang 14

Sau khi có được ma trận tịnh tiến, chương trình sẽ thực hiện phép nhân ma trận giữa M và vecto tọa độ các đỉnh của khối lập phương cũ, từ đó cho ra tọa độ các đỉnh của khối lập phương mới

2.2.3 Chức năng quay

Chương trình sẽ tiến hành các bước sau:

1 Tịnh tiến theo vecto (-x1, -y1, -z1) với x1, y1, z1 là tọa độ của đỉnh A để A trùng với gốc tọa độ O

2 Quay quanh trục Ox 1 góc thetax phù hợp để AB nằm trong mặt Oxz 3 Quay quanh trục Oy 1 góc thetay phù hợp để AB nằm trên trục Oz 4 Quay quanh trục Oz góc theta

5 Quay ngược lại quanh trục Oy góc thetay 6 Quay ngược lại quanh trục Ox góc thetax 7 Tịnh tiến ngược lại vecto ban đầu

Tương ứng với từng bước, chương trình sẽ xây dựng một ma trận biến đổi phù hợp và thực hiện phép nhân ma trận vừa tạo với vecto tọa độ các đỉnh của khối lập phương để đạt được tọa độ mới của khối lập phương Ma trận quay có công thức như sau:

Quay quanh Ox: M =

0 𝑐𝑜𝑠 −𝑠𝑖𝑛 0

Trang 15

Quay quanh Oy: M =

Trang 16

CHƯƠNG 3: TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ

3.1 MÔ HÌNH TRIỂN KHAI 3.1.1 Mô hình triển khai

• Triển khai lập trình dưới dạng file thực thi exe để dễ dàng trong việc chạy chương trình trên các máy khác nhau

Trang 17

Hình 6: Giao diện chính

• Người dùng sử dụng bàn phím để nhập các thông tin cần thiết nhằm đạt được kết quả mong muốn

• Dưới đây là một số hình ảnh kết quả thực thi chương trình

Hình 7: Giao diện khi tịnh tiến vật thể theo (x, y, z) = (0,200,0)

Trang 18

Hình 8: Giao diện khi tỉ lệ vật thể theo (x, y, z) = (1,1.5,1.5)

Hình 9: Giao diện khi quay vật quanh trục AB 60 độ (A = (0,300,400) và B = (200,200,0)

Trang 19

Hình 10: Giao diện khi đối xứng vật quanh mặt phẳng Oyz

Hình 11: Ma trận biến đổi (phép tịnh tiến)

Hình 12: Tọa độ các đỉnh trước khi biến đổi

Hình 13: Tọa độ các đỉnh sau khi biến đổi

Trang 20

- Kết quả thực thi của chương trình

- Nhận xét và đánh giá về kết quả của chương trình

Trang 21

CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

1 KẾT QUẢ ĐẠT ĐƯỢC

Trong thời gian tìm hiểu, nghiên cứu cơ sở lý thuyết và triển khai ứng dụng công nghệ, đồ án đã đạt được những kết quả sau:

Về mặt lý thuyết, đồ án đã đạt được các yêu cầu về mặt lý thuyết sử dụng thư

viện đồ họa OpenGL, các phương pháp biến đổi vật thể cũng như cài đặt môi trường đồ họa OpenGL trên Visual Studio Code

Về mặt thực tiễn ứng dụng, đồ án đã đạt được các yêu cầu đề ra ban đầu của

bài toán, việc xây dựng chương trình thực hiện các thao tác biến đổi vật thể sử dụng ma trận

Tuy nhiên, vẫn còn tồn tại các vấn đề như sau:

- Vẫn còn thiếu một số chức năng giúp người dùng dễ quan sát hơn.

- Việc thực thi chương trình ở mức ổn, chưa được trôi chảy.

2 KIẾN NGHỊ VÀ HƯỚNG PHÁT TRIỂN

Một số số hướng nghiên cứu và phát triển của đề tài như sau:

- Bổ sung và hoàn thiện một số chức năng của hệ thống …

- Đánh giá hiệu năng trên các môi trường khác nhau như trên hệ điều hành Linux, MasOS, Window 7, 8.1 ,10 ,11 …

- Bổ sung các giải pháp bảo mật và an toàn cho hệ thống thông qua hình thức đóng gói.

Trang 22

TÀI LIỆU THAM KHẢO

[1] Giới thiệu và tổng quan thư viện OpenGL và GLUT, TaiLieu.VN [2] PyOpenGl Introduction - Stackabuse

[3] Bài giảng Đồ họa máy tính - Nguyễn Tấn Khôi

Trang 23

CHƯƠNG 5: BÀI TẬP MÔN HỌC

5.1 BÀI TẬP TÍNH TOÁN ĐỒ HỌA MÁY TÍNH

1) Cho hai điểm A(xa, ya), B(xb, yb) Tìm phương trình của đường thẳng đi qua 2 điểm AB Tự chọn các tọa độ cụ thể.

=> {

𝑎 ≈ 55𝑏 ≈ 64𝑐 ≈ 2264Vậy phương trình đường tròn đi qua 3 điểm A, B, C là:

𝑥2 + 𝑦2− 110𝑥 − 128𝑦 + 2264 = 0

3) Cho tam giác ABC với A(xa, ya), B(xb, yb), C(xc, yc) Tự chọn các giá trị và xác định tâm đường tròn ngoại tiếp, tâm đường tròn nội tiếp, giao điểm 3 đường cao, giao điểm 3 đường trung tuyến, giao điểm 3 đường phân giác

Giải:

Trang 24

Gọi I(x, y) là tâm đường tròn ngoại tiếp ΔABC Suy ra {𝐼𝐴2 = 𝐵𝐼2

𝐼𝐴2 = 𝐶𝐼2

⇒ {(𝑥 − 21)2+ (𝑦 − 3)2 = (𝑥 − 0)2+ (𝑦 − 21)2(𝑥 − 21)2+ (𝑦 − 3)2 = (𝑥 − 88)2+ (𝑦 − 2)2 ⇔ {

𝑥 ≈ 55𝑦 ≈ 64

I(55, 64) là tâm đường tròn ngoại tiếp ΔABC Ta có: 𝐴𝐵 = 3√85 , 𝐴𝐶 = 67, 𝐵𝐶 = 90 Do đó:

Tương tự câu 1 ta suy ra được phương trình đường thẳng d’ qua C(88, 2), D(3, 5) có dạng là:

𝑦 = 116𝑥 −

Gọi G(xG, yG) là giao điểm của d và d’ Suy ra phương trình hoành độ giao điểm của d và d’ là:

7 𝑥 + 21 = 116𝑥 −

72

Trang 25

⇒ 𝑥 ≈ 26 ⇒ 𝑦 = −158

Giao điểm của AB và CD là G(26, −15

P(88, 2, 21) => 𝑃𝐴⃗⃗⃗⃗⃗ = (−67, 1, −16) Khoảng cách d = |[𝑃𝐴⃗⃗⃗⃗⃗ ,𝐴𝐵⃗⃗⃗⃗⃗ ]|

| 𝐴𝐵⃗⃗⃗⃗⃗ | ≈ 69

7) Tìm phương trình của mặt phẳng chứa 3 điểm A(xa, ya, za), B(xb, yb, zb), C(xc, yc, zc)

Trang 26

A(21, 3, 5) , B(0, 21, 89) , C(88, 2, 21)

Ta có 𝐴𝐵⃗⃗⃗⃗⃗ = (−21, 18, 84) ; 𝐴𝐶⃗⃗⃗⃗⃗ = (61, −1, 16) ; [ 𝐴𝐵⃗⃗⃗⃗⃗ , 𝐴𝐶⃗⃗⃗⃗⃗ ] =(372, 5460, −1077)

Gọi 𝑛⃗ là một vecto pháp tuyến của mp (ABC) ta có: {𝑛⃗ ⊥ 𝐴𝐵⃗⃗⃗⃗⃗

𝑛⃗ ⊥ 𝐴𝐶⃗⃗⃗⃗⃗ 𝑛ê𝑛 𝑛⃗ 𝑐ù𝑛𝑔 𝑝ℎươ𝑛𝑔 𝑣ớ𝑖 [ 𝐴𝐵⃗⃗⃗⃗⃗ , 𝐴𝐶⃗⃗⃗⃗⃗ ] = (372, 5460, −1077) Chọn 𝑛⃗ ta được phương trình mp (ABC) là:

5√515) hoặc tương đương với:

𝑣ℎ𝑎𝑡 = 𝑣

||𝑣|| = (0.814, 0.116, 0.187)

10) Cho ba điểm A, B, C không thẳng hàng trong không gian: A(xa, ya, za), B(xb, yb, zb), C(xc, yc, zc) Hãy viết công thức và tính vector pháp tuyến của mặt phẳng đi qua ba điểm trên

Trang 27

Giải:

A(21, 3, 5) , B(0, 21, 89) , C(88, 2, 21)

Ta có 𝐴𝐵⃗⃗⃗⃗⃗ = (−21, 18, 84) ; 𝐴𝐶⃗⃗⃗⃗⃗ = (61, −1, 16) ; [ 𝐴𝐵⃗⃗⃗⃗⃗ , 𝐴𝐶⃗⃗⃗⃗⃗ ] =(372, 5460, −1077)

Gọi 𝑛⃗ là một vecto pháp tuyến của mp (ABC) ta có: {𝑛⃗ ⊥ 𝐴𝐵⃗⃗⃗⃗⃗

𝑛⃗ ⊥ 𝐴𝐶⃗⃗⃗⃗⃗ 𝑛ê𝑛 𝑛⃗ 𝑐ù𝑛𝑔 𝑝ℎươ𝑛𝑔 𝑣ớ𝑖 [ 𝐴𝐵⃗⃗⃗⃗⃗ , 𝐴𝐶⃗⃗⃗⃗⃗ ] = (372, 5460, −1077) Chọn 𝑛⃗ ta được phương trình mp (ABC) là:

372(𝑥 − 21) + 5460(𝑦 − 3) − 1077(𝑧 − 5) = 0

ℎ𝑎𝑦 372𝑥 + 5460𝑦 − 1077𝑧 − 18807 = 0

5.2 BÀI TẬP CÁC PHÉP BIẾN ĐỔI ĐỒ HỌA

1) Model Transformation

Input: Pobj(xobj, yobj, zobj, w)

Tịnh tiến theo vectơ T(dx, dy, dz) với dx=1, dy=4, dz=6

Phép quay quanh một góc a=45o quanh trục (1, 2, 3) ngược chiều kim đồng hồ Trình bày công thức, ma trận biến đổi, tính tọa độ mới khi thực hiện lần lượt các phép biến đổi

Output: Pworld(xworld, yworld, zworld, w)

Trang 28

MModel =

1 00 10 10 40 01 60 00 1

=> P’ =

1 0 0 10 1 0 40 0 1 60 0 0 1

Input: Pobj(xworld, yworld, zworld, w)

Cho camera đặt tại e = (xe, ye, ze)=(4, 4, 4), nhìn vào c = (xc, yc, zc)=(0, 1, 4), hướng lên up = (0, 1, 0)

Trang 29

Trình bày công thức, ma trận biến đổi, tính điểm ảnh của A sau khi thực hiện biến đổi hệ quan sát Mview

Output: Pcam(xcam, ycam, zcam, w)

Giải:

Ta có các vecto e = (4; 4; 4), c = (0; 1; 4), up = (0; 1; 0) - Ta xây dựng các vecto X, Y, Z, trong đó:

- Z = e – c = (4; 3; 0)

- Chuẩn hóa Z: Z = 𝑍

||𝑍|| = (4/5; 3/5; 0) - Y = up = (0; 1; 0)

- X = Y x Z = (0; 0; 4/5), chuẩn hóa => X = (0; 0; 1) - Y = Z x X = (3/5; -4/5; 0)

=> Ma trận biến đổi Mview =

Input: Pcam(xcam, ycam, zcam, w)

Trình bày công thức tính toán, ma trận biến đổi, tính tọa độ sau khi thực hiện Phép chiếu phối cảnh có: b=3.0; t=-3.0; l=-4.0; r=4.0; near=0.1; far=80

Output: Pproj(xproj, yproj, zproj, w)

Ngày đăng: 31/05/2024, 14:09

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

TÀI LIỆU LIÊN QUAN

w