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

Thông tin cơ bản

Tiê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)
Tác giả Lê Quốc Ân, Hồ Quốc Thiên Anh, Nguyễn Quang Sáng
Người hướng dẫn PGS.TS Nguyễn Tấn Khôi
Trường học Đại Học Đà Nẵng
Chuyên ngành Công Nghệ Thông Tin
Thể loại Báo Cáo Môn Học
Năm xuất bản 2023
Thành phố Đà Nẵng
Định dạng
Số trang 36
Dung lượng 827,96 KB

Cấu trúc

  • 1.1. CƠ SỞ LÝ THUYẾT (7)
  • 1.2. PHÁT BIỂU BÀI TOÁN (11)
  • CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG (12)
    • 2.1. PHÁT BIỂU BÀI TOÁN (12)
    • 2.2. PHÂN TÍCH CHỨC NĂNG (13)
    • 2.3. KẾT CHƯƠNG (15)
  • CHƯƠNG 3: TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ (16)
    • 3.1. MÔ HÌNH TRIỂN KHAI (16)
    • 3.2. KẾT QUẢ THỰC NGHIỆM (16)
    • 3.3. NHẬN XÉT ĐÁNH GIÁ KẾT QUẢ (20)
    • 3.4. KẾT CHƯƠNG (20)
  • CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (21)
  • TÀI LIỆU THAM KHẢO ...................................................................................... 21 (22)
    • CHƯƠNG 5: BÀI TẬP MÔN HỌC (23)
      • 5.1. BÀI TẬP TÍNH TOÁN ĐỒ HỌA MÁY TÍNH (23)
      • 5.2. BÀI TẬP CÁC PHÉP BIẾN ĐỔI ĐỒ HỌA (27)
      • 5.3. BÀI TẬP ĐƯỜNG, MẶT CONG THAM SỐ (31)
      • 5.4. BÀI TẬP THUẬT TOÁN CƠ BẢN VẼ ĐƯỜNG (32)

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Ử

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ộ

• 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

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

Các phép biến đổi mô hình được biểu diễn bằng một ma trận mô hình, áp dụng cho tập hợp các đỉnh hình học chung để chuyển đổi các đỉnh này từ không gian mô hình sang không gian thế giới.

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

Ma trận mô hình M được tạo thành từ phép tịnh tiến (dịch chuyển) T, phép quay R và phép tỉ lệ S của đối tượng Sau đó nhân vị trí của đỉnh với ma trận mô hình M để chuyển đổi từ không gian cục bộ (local space) của đối tượng sang không gian thế giới (world space).

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

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

PHÂN TÍCH THIẾT KẾ HỆ THỐNG

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

• Đề 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

• 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

• 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

• 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

Giao diện OpenGL giúp che giấu sự khác biệt giữa các phần cứng 3D bằng cách yêu cầu các phần cứng tương thích với OpenGL phải hỗ trợ toàn bộ các chức năng của giao diện.

12 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 gồm có nhận các nguyên hàm hình học như điểm, đường thẳng và đa giác sau đó chuyển đổi chúng thành các điểm đồ họa (pixel) hiển thị trên màn hình.

2.1.2.4 Một số hạn chế trong OpenGL

• Bản thân OpenGL không có sẵn các hàm nhập xuất hay thao tác trên Window

• OpenGL không có sẵn các hàm cấp cao để xây dựng các mô hình đối tượng, thay vào đó, người dùng phải tự xây dựng từ các thành phần hình học cơ bản (điểm, đoạn thẳng, đa giác)

• Rất may là một số thư viện cung cấp sẵn một số hàm cấp cao đượ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

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

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:

Với tx, ty, tz lần lượt là tọa độ của vecto tịnh tiến T = (tx, ty, tz)

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

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:

Với sx, sy, sz lần lượt là giá trị các tỉ lệ muốn biến đổi theo chiều Ox,

Sau khi xác định ma trận tỷ lệ, chương trình nhân ma trận M với tọa độ các đỉnh của khối lập phương ban đầu Kết quả nhân chính là tọa độ các đỉnh của khối lập phương mới.

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:

Chức năng này sẽ tiến hành xây dựng một ma trận đối xứng M theo công thức như sau: Đối xứng qua Oxy: M 1 0 0 0

KẾT CHƯƠNG

Chương này trình bày về các nội dung sau:

• Bài toán mà đề tài cần phải giải quyết được

• Giới thiệu về thư viện mã nguồn mở OpenGL (không gian trong OpenGL, mục đích thiết kế, hạn chế, một số trò chơi được lập trình với OpenGL)

• Các chức năng trong đề tài

TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ

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

3.1.2 Các công cụ sử dụng

• Cấu hình hệ thống được sử dụng để lập trình và debug chương trình:

▪ Hệ điều hành Window 11 Pro for Workstation

• Cấu hình hệ thống được sử dụng để chạy demo file thực thi:

▪ Hệ điều hành Window 11 Pro for Workstation.

KẾT QUẢ THỰC NGHIỆM

• Người dùng chạy chương trình và giao diện chính sẽ hiện ra như sau:

• 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)

17 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)

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

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

Qua kết quả thực nghiệm, ta có những nhận xét như sau:

- Kết quả của các phép biến đổi có độ chính xác cao

- Khả năng biến đổi và hiển thị các vật thể sau khi biến đổi tốt

- Đồ họa của chương trình khá bắt mắt

KẾT CHƯƠNG

Chương này trình bày về các nội dung cơ bản sau:

- Mô hình triển khai của của hệ thống

- 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

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

HÌNH ẢNH LIÊN QUAN

Hình 1: Tổng quan về Model Transformation - đề 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ình 1 Tổng quan về Model Transformation (Trang 7)
Hình 2: Các bước chính trong quá trình hiền thị đồ họa - đề 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ình 2 Các bước chính trong quá trình hiền thị đồ họa (Trang 8)
Hình 3: Các đỉnh của khối lập phương được xác định trong World Space - đề 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ình 3 Các đỉnh của khối lập phương được xác định trong World Space (Trang 9)
Hình 4: Các khối hình chữ nhật trong World Space - đề 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ình 4 Các khối hình chữ nhật trong World Space (Trang 10)
Hình 5: Biểu diễn các đối tượng trong Camera Space - đề 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ình 5 Biểu diễn các đối tượng trong Camera Space (Trang 11)
Hình 6: Giao diện chí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ình 6 Giao diện chính (Trang 17)
Hình 7: Giao diện khi tịnh tiến vật thể theo (x, y, z) = (0,200,0) - đề 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ình 7 Giao diện khi tịnh tiến vật thể theo (x, y, z) = (0,200,0) (Trang 17)
Hình 9: Giao diện khi quay vật quanh trục AB 60 độ (A = (0,300,400) và B = (200,200,0) - đề 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ình 9 Giao diện khi quay vật quanh trục AB 60 độ (A = (0,300,400) và B = (200,200,0) (Trang 18)
Hình 10: Giao diện khi đối xứng vật quanh mặt phẳng Oyz - đề 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ình 10 Giao diện khi đối xứng vật quanh mặt phẳng Oyz (Trang 19)
Hình 12: Tọa độ các đỉnh trước khi biến đổi - đề 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ình 12 Tọa độ các đỉnh trước khi biến đổi (Trang 19)
Hình 13: Tọa độ các đỉnh sau khi biến đổi - đề 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ình 13 Tọa độ các đỉnh sau khi biến đổi (Trang 19)
Hình 11: Ma trận biến đổi (phép tịnh tiế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
Hình 11 Ma trận biến đổi (phép tịnh tiến) (Trang 19)

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

TÀI LIỆU LIÊN QUAN

w