3 Một trong các yêu cầu chình của một hệ thống đồ họa là các ứng dụng, áp dụng cho nhiều hệ thiết bị, phải được phát triển không phụ thuộc vào phần cứng.. Hệ tọa độ thế giới thực và hệ t
Trang 1LỜI CAM ĐOAN
Tôi xin cam đoan :
Nhưng nội dung trong luận văn này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của Tiến sỹ Hồ Ngọc Vinh trường Đại học Sư phạm Kỹ thuật Vinh
Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố
Trang 2TÀI LIỆU THAM KHẢO
1 Văn Như Cương –Trần Đức Huyên – Nguyễn Mộng Hy, Hình học 11 (Sách chỉnh lí hợp nhất năm 2000), NXB Giáo dục
2 Văn Như Cương – Phạm Khắc Ban – Tạ Mân (2003), Bài tập Hình học 11,(Sách thí điểm Ban khoa học tự nhiên – Bộ 1), NXB Giáo dục
3 Văn Như Cương – Đoàn Quỳnh– Tạ Mân- Phạm Khắc Ban (2007), Hình học Nâng cao11, NXB Giáo dục
4 Lê Mâu Thống (1996), Vũ Thiện Căn – Trần Trân Châu - Đinh Quang Hạo – Trần Đức Huyên – Lê Mậu Thảo, Phương Pháp Chuyên Để Hình Học Không Gian NXB
Trẻ
5 Lâm Tấn Dũng – Các phương pháp giải toán hình học không gian
6 Dương Anh Đức, Lê Đình Duy, Giáo trình Đồ họa máy tính, Khoa Công nghệ thông
tin, Trường ĐH Khoa học tự nhiên (lưu hành nội bộ), 1996, 237tr
7 Đặng Minh Hoàng, Đồ họa với Matlab 5.3, NXB Thống kê, 2000
8 Hoàng Kiếm, Dương Anh Đức, Lê Đình Duy, Vũ Hải Quân Giáo trình Cơ sở Đồ họa Máy Tính, NXB Giáo dục, 2000
9 Nguyễn Bá Kim, Phương pháp dạy học môn toán, NXB ĐHSP, 2002
10 Đào Thái Lai, Ứng dụng CNTT và vấn đề đổi mới PPDH môn Toán, Tạp chí
Nghiên cứu Giáo dục, số 9/2002
Trang 3CÁC WEBSITE THAM KHẢO:
Trang 4DANH MỤC HÌNH VẼ
Hình 1.1 Hệ thống đồ họa 2
Hình 1.2 Vẽ đoạn thẳng PQ 6
Hình 1.3 Danh sách các đỉnh 9
Hình 1.4 Đường viền trên mặt 2D 11
Hình 1.5 Sau khi “Translational sweep” 11
Hình 1.6 Đường viền trên mặt 2D 11
Hình 1.7: Đường viền C quay trục z một góc u 11
Hình 1.8: Các khối hình cơ bản 17
Hình 2.1: Tâm quan sát 27
Hình 2.2: Hướng mắt quan sát 27
Hình 2.3: Tọa độ và góc 28
Hình 2.4: Phép chiếu ảnh 3D lên mặt phẳng quan sát 28
Hình 2.5: Định vị theo tọa độ gián tiếp 30
Hình 2.6: Định vị theo tọa độ trực tiếp 30
Hình 2.7: Định vị điểm P với hệ tọa độ 1 30
Hình 2.8: Định vị điểm P với hệ tọa độ 2 30
Hình 2.9: Phép chiếu phối cảnh 1 31
Hình 2.10: Phép chiếu phối cảnh 2 31
Hình 2.11: Phép chiếu phối cảnh 3 31
Hình 2.12 Phép chiếu song song 32
Hình 2.13: Phép biến đổi cơ bản 34
Hình 2.14: Tịnh tiến góc O thành O‟ 34
Hình 2.15: Quay hệ (X1,Y1,Z1) một góc -‟ quanh trục Z1 35
Hình 2.16: Quay hệ (X1,Y1,Z1) góc 900 + quanh trục X2 36
Hình 2.17: Biến đổi hệ trục tọa độ trực tiếp thành hệ gián tiếp 37
Trang 5Hình 2.18: Chiếu phối cảnh (a), (b) 38
Hình 2.19: Phép chiếu song song 39
Hình 2.20: D là khoảng cách từ ảnh đến mắt 39
Hình 2.21: R là khoảng cách từ ảnh đến mắt 39
Hình 3.1: Vẽ đồ thị bằng lệnh Plot 53
Hình 3.2: Vẽ thêm đồ thị cosx 54
Hình 3.3: Thay đổi trật tự các đối số 54
Hình 3.4: Khai báo màu khác cho dấu 56
Hình 3.5: Dùng linewidth tăng độ rộng của đường vẽ (lines) 56
Hình 3.6: Vẽ đồ thị sinx và cosx 58
Hình 3.7: Thêm nét vẽ vào đồ thị bằng lệnh hold 59
Hình 3.8: Thêm đường cos vào hình 3.3 59
Hình 3.9: Chia cửa sổ thành ma trận m x n để vẽ đồ thị 60
Hình 3.10: Hàm plot3 cho phép vẽ các điểm và đương trong không gian 60
Hình 3.11: Hàm vẽ plot và loglog 61
Hình 3.12: Hàm vẽ semilogx và semilogy 62
Hình 3.13: Vẽ 3D với trục z tuyến tính và trục z logarith 63
Hình 3.14: Hiện thị số % bằng hàm pie 64
Hình 3.15: Hàm barh và hàm barh3 cho phép vẽ đồ thị cột nằm ngang 65
Hình 3.16: Vẽ mặt với lệnh mesh, meshc 69
Hình 3.17: Vẽ mặt với lệnh meshz và waterfall 69
Hình 3.18: Vẽ các mặt được tô bóng 70
Trang 6MỤC LỤC
CHƯƠNG I 1
GIỚI THIỆU VỀ ĐỒ HOẠ 3D 1
1.1 Giới thiệu về đồ họa máy tính 1
1.1.1 Khái niệm về đồ họa máy tính 1
1.1.2 Tổng quan về một hệ đồ họa 2
1.1.3 Các đối tượng của đồ họa cơ sở 4
1.1.4 Một số ứng dụng của đồ họa máy tính 6
1.2 Xây dựng các khối hình 3D 8
1.2.1 Các mô hình biểu diễn khối 3D 8
1.2.2 Tạo khối 3D 10
1.3.1 Phép biến đổi tỷ lệ 17
1.3.2 Phép tịnh tiến 18
1.3.3 Phép quay hình 18
1.3.4 Phép biến dạng (co dãn): 19
1.3.5 Giải thuật 19
CHƯƠNG II 26
HỆ TỌA ĐỘ BIỂU DIỄN CÁC ĐỐI TƯỢNG 26
2.1 Một số hệ tọa độ 26
2.1.1 Hệ họa độ cục bộ (Local coordinates) 26
2.1.2 Hệ tọa dộ thế giới thực (World coordinates) 26
2.1.3 Hệ tọa độ quan sát (Camera coordinates) 27
2.2 Các phép chiếu của không gian trên mặt phẳng 30
2.2.1 Phép chiếu phối cảnh 30
2.2.2 Phép song song 32
2.2.3 Phép chiếu trực giao 32
Trang 72.2.4 Công thức các phép chiếu trên màn hình 33
CHƯƠNG III 40
ỨNG DỤNG ĐỒ HỌA 3D TRONG DẠY HỌC TOÁN 40
3.1 Vai trò của đồ họa 3D trong dạy học toán 40
3.1.1 Truyền tải nội dung kiến thức toán học 40
3.1.2 Rèn luyện kỹ năng, củng cố, ôn tập kiến thức cũ 40
3.1.3 Hỗ trợ các phương pháp học tập, phương pháp thực nghiệm toán học 41
3.1.4 Hình thành phẩm chất, đạo đức, tác phong cho học sinh 41
3.2 Xây dựng thư viên hình học trong đồ họa 3D 42
3.2.1 Xây dựng thư viện nhân vật 42
3.2.2 Xây dựng thư viện nhân vật và thư viện động tác 43
3.3 Lập trình đồ họa 3D với MATLAP trong dạy học toán 50
3.3.1 Tổng quan về MATLAB 50
3.3.2 Đồ họa 3D với Matlab 53
3.4 Chương trình mô phỏng đồ họa 3D trong dạy học toán 71
3.4.1 Một số phương pháp giải toán Hình Học Không Gian 72
3.4.2 Một số công thức cần nhớ 80
3.4.3 Ứng dụng của Matlab vào các bài toán giải hình học không gian 81
Trang 8MỞ ĐẦU
Ngày nay, công nghệ thông tin (CNTT) đã phát triển rất mạnh mẽ, công nghệ thay đổi từng ngày, những bài toán, những khó khăn của con người đang dần dần được máy tính hoá Nó được ứng dụng rộng rãi trong mọi lĩnh vực đời sống con người từ việc giải trí, kinh doanh, ứng dụng,… cho đến những vấn đề phức tạp trong khoa học
kỹ thuật đặc biệt là hổ trợ trong nền giáo dục hiện nay
Việc đổi mới phương pháp dạy học cần sử dụng nhiều phương pháp và phương tiện dạy học hiện đại, trong đó ứng dụng CNTT được coi là một yếu tố tích cực trong quá trình đổi mới phương pháp dạy học
Riêng đối với ngành Toán học đã có nhiều phần mềm được ứng dụng trong giảng dạy cũng như trong học tập Chính vì vậy việc sử dụng nhiều loại hình phương tiện trực quan trong dạy học, đáng chú ý là các phần mềm dạy học (3DproS, Cabri, Mathematica, Maple, ) trong hình học không gian (HHKG) nhằm hỗ trợ lẫn nhau, thúc đẩy hoạt động nhận thức tích cực của học sinh, góp phần nâng cao chất lượng dạy
và học môn toán là xu thế tất yếu
Việc ứng dụng công nghệ thông tin hỗ trợ dạy học là một định hướng căn bản về đổi mới thiết bị dạy học hiện nay Xây dựng, ứng dụng các phần mềm dạy học nói chung và các phần mềm ứng dụng trong dạy học Toán nói riêng đòi hỏi người giáo viên có hiểu biết về tin học, làm chủ được các thiết bị phần cứng cũng như các phần mềm thì các phương tiện dạy học mới phát huy được hiệu quả của nó Hiện nay, ở nước ta các phần mềm hỗ trợ dạy học môn toán chưa có nhiều, việc bồi dưỡng năng lực cho giáo viên sử dụng máy vi tính tuy đã được được triển khai rộng rãi nhưng sự hưởng ứng thì chưa cao và hiệu quả đạt được còn khiêm tốn
Trang 9Trong bối cảnh đó, chúng ta nhất thiết phải cải cách phương pháp dạy học theo hướng vận dụng CNTT và các thiết bị dạy học hiện đại phát huy mạnh mẽ tư duy sáng tạo, kỹ năng thực hành và hứng thú của học sinh để nâng cao chất lượng đào tạo Từ
những vấn đề trên, tôi chọn đề tài nghiên cứu “Tìm hiểu về ảnh 3d và ứng dụng trong khoa học - giáo dục” Đề tài cung cấp các kiến thức về Đồ họa máy tính, Kiến
thức về ngôn ngữ lập trình Matlab Đồng thời trình bày các kỹ thuật đồ họa trong Matlab ứng dụng trong trong giảng dạy, học tập môn toán trung học phổ thông
Luận văn gồm 3 chương với các nội dung sau:
Chương I: Giới thiệu về đồ họa 3d
Chương II: Hệ tọa độ biểu diễn các đối tượng
Chương III: Ứng dụng đồ họa 3d trong dạy học toán
Luận văn đã được kiểm tra kỹ nhưng cũng không tránh khỏi những sai sót, rất mong nhận được sự đóng góp ý kiến của quý thầy cô, bạn bè và các đồng nghiệp để đề tài được hoàn thiện hơn nữa
Trang 101
CHƯƠNG I
GIỚI THIỆU VỀ ĐỒ HOẠ 3D
Ngày nay, đồ họa máy tính được ứng dụng rộng rãi trong lĩnh vực công nghệ thông tin Khó mà tìm được một ứng dụng thương mại của công nghệ thông tin không
sử dụng một thành phần nào đó của hệ đồ họa máy tình Đồ họa máy tình (ĐHMT) ở vị trí quan trọng trong lĩnh vực thiết kế và giao tiếp kỹ thuật Nó là cơ sở để chuyển đổi các giải pháp tình toán số sang thể hiện hình ảnh tự nhiên cho thiết kế kỹ thuật hay muốn sáng tỏ một vấn đề phức tạp
Đồ họa máy tính đã phát triển rất nhanh, nó được ứng dụng trong nhiều lĩnh vực khoa học, giáo dục và công nghệ như: y học, kiến trúc, giải trí, … Đồ họa máy tình giúp chúng ta thay đổi cách cảm nhận và sử dụng máy tính, nó đã trở thành những công
cụ trực quan không thể thiếu trong đời sống hàng ngày Vì vậy, đồ họa máy tình là một trong những lĩnh vực lý thú nhất và phát triển nhanh nhất của CNTT
Ngay từ khi xuất hiện, đồ họa máy tính đã có sức lôi cuốn mãnh liệt, cuốn hút rất nhiều người ở nhiều lĩnh vực khác nhau như: khoa học, nghệ thuật, kinh doanh, giải trí,
… Tính hấp dẫn và đa dạng của đồ họa máy tính có thể được minh họa rất trực quan thông qua việc khảo sát các ứng dụng của nó
1.1 Giới thiệu về đồ họa máy tính
1.1.1 Khái niệm về đồ họa máy tính
Đồ họa máy tình (Computer Graphics) là một trong những chương trình thông dụng nhất, nó đã góp phần quan trọng làm cho giao tiếp giữa con người và máy tình trở nên thân thiện hơn Giao diện kiểu dòng lệnh đã được thay thế hoàn toàn bằng giao diện đồ họa, cùng với công nghệ đa phương tiện (Multimedia) đã đưa ngành Công nghệ thông tin sang một phiên bản mới
Trang 112
Đồ họa máy tính là tất cả những gì liên quan đến việc sử dụng máy tính để phát sinh ra hình ảnh Các vấn đề liên quan tới công việc này bao gồm: tạo, lưu trữ, thao tác trên các mô hình (các mô tả hình học của đối tượng) và các ảnh
Theo định nghĩa này thì đồ họa máy tính bao gồm việc thiết kế phần cứng như thiết bị hiển thị, các thuật toán cần thiết để phát sinh các đường trên các thiết bị này, các phần mềm được sử dụng cho cả người lập trình ứng dụng tạo ảnh bằng máy tính
Đồ họa máy tình biểu diễn được hính ảnh đối tượng, quan hệ, dữ liệu, vị trí, …
Đồ họa máy tính còn có chức năng mô tả kích thước của đối tượng, phân tích dữ liệu Ngày nay, trong nhiều quá trình thiết kế, cài đặt và xây dựng, thông tin mà hình ảnh mang lại là hầu như không thể thiếu được Kỹ thuật trực quan đã trở nên là một lĩnh vực rất quan trọng từ năm 1980, khi các nhà nghiên cứu khoa học và kỹ sư nhận ra rằng họ không thể xử lý một lượng dữ liệu khổng lồ phát sinh từ các siêu máy tính mà
dữ liệu không được tóm lược và làm nổi bật các xu hướng và hiện tượng qua nhiều loại biểu diễn đồ họa khác nhau
1.1.2 Tổng quan về một hệ đồ họa
Mục tiêu của ĐHMT có chức năng tạo ra và thao tác các hình ảnh đồ họa, nên nó phải có khả năng tạo ra và hiệu chỉnh các hình ảnh bằng các tương tác và đáp ứng Các ứng dụng đồ họa đưa ra các chỉ dẫn thuật ngữ theo yêu cầu đồ họa người dùng Thư viện
đồ họa thực hiện tương tác, làm cầu nối cho giao tiếp giữa người dùng và các thiết bị đơn giản hơn
Chương trình ứng dụng
Thư viện đồ họa Thiết bị đồ họa
Hình 1.1 Hệ thống đồ họa
Trang 123
Một trong các yêu cầu chình của một hệ thống đồ họa là các ứng dụng, áp dụng cho nhiều hệ thiết bị, phải được phát triển không phụ thuộc vào phần cứng Để có được điều đó, phải có tiêu chuẩn hóa cho môi trường đồ họa ở mức chức năng bằng việc cung cấp sự độc lập thiết bị và ngôn ngữ lập trình (NNLT)
Sự độc lập với thiết bị cho phép các chương trính ứng dụng đồ họa chạy trên các dạng phần cứng khác nhau Nó được thực hiện thông qua thiết bị nhập xuất logic cung cấp cho phần mềm ứng dụng thông qua thư viện đồ họa và ánh xạ thiết bị cụ thể Cho tới nay, có những tiêu chuẩn đồ họa đã được phát triển trong nhiều năm, bao gồm: GKS (Graphics Kernel System - 1985), được phát triển riêng cho các thiết bị nhập xuất 2 chiều GKS - 3D bổ sung thêm khả năng lập trính 3 chiều PHIGS (Programmer‟s Hierarchical Graphics System - 1984) hay PHIGS+ bao gồm khả năng lập trính không gian, tạo thành thao tác dữ liệu đồ họa phức tạp…
Các tiêu chuẩn đồ họa thực tế là kết quả của việc chấp nhận trong công nghiệp các giao diện đặc trưng, được đề xuất bởi nhiều công ty và không nêu ra trong các tiêu chuẩn chính thức Được nhắc đến trong số này là hệ X-Windows, cung cấp một loạt các chức năng nhập và thao tác đồ họa 2 chiều Sự mở rộng được bắt đầu vào giữa những năm 80 là hệ X-Windows 3 chiều
Để đảm bảo sự linh hoạt, các tiêu chuẩn đồ họa thiết lập cho ứng dụng các thay đổi tối thiểu, cho phép nó định địa chỉ các thiết bị nhập xuất khác nhau Khởi đầu, người lập trình tạo ra một hệ thống tọa độ mô hình, mô tả đối tượng gọi là hệ thống tọa độ thực Tiếp theo, là hệ tọa độ tiêu chuẩn và hệ tọa độ thiết bị Chương trình ứng dụng sẽ giao tiếp với hệ tọa độ chuẩn theo cách thức phù hợp, không quan tâm đến thiết bị xuất được dùng Do đó, tạo ra sự độc lập với thiết bị trong việc tạo ra hình ảnh của đối tượng
1.1.2.1 Phần cứng
Phần cứng đồ họa bao gồm các thành phần:
Trang 134
- Thiết bị thu nhận: bàn phím, chuột, máy quét, camera, …
- Thiết bị hiển thị: các loại màn hình CRT, LCD, …
- Thiết bị tương tác: găng tay, kính 3D, …
1.1.3 Các đối tƣợng của đồ họa cơ sở
1.1.3.1 Hệ tọa độ thế giới thực và hệ tọa độ thiết bị
Trong lĩnh vực kỹ thuật đồ họa, chúng ta phải hiểu được rằng thực chất của đồ họa là làm thế nào để có thể mô tả và biến đổi được các đối tượng trong thế giới thực trên máy tình Bởi ví, các đối tượng trong thế giới thực được mô tả bằng tọa độ thực Trong khi đó, hệ tọa độ thiết bị lại sử dụng hệ tọa độ nguyên để hiển thị các hính ảnh Đây chình là vấn đề cơ bản cần giải quyết Ngoài ra, còn có một khó khăn khác là với các thiết bị khác nhau thí có các định nghĩa khác nhau Do đó, cần có một phương pháp chuyển đổi tương ứng giữa các hệ tọa độ và đối tượng phải được định nghĩa bởi các thành phần đơn giản như thế nào để có thể mô tả gần đúng với hình ảnh thực bên ngoài
Trang 145
a Hệ tọa độ thế giới thực (WCS: World Coordinate System)
WCS hay hệ tọa độ thực là hệ tọa độ (TĐ) được dùng để mô tả các đối tượng trong thế giới thực Một trong những hệ tọa độ thực thường được dùng để mô tả các đối tượng trong thế giới thực là hệ tọa độ Descartes Bất kì điểm nào trong mặt phẳng được mô tả bằng cặp tọa độ (x, y), trong đó x, y R Gốc tọa độ là điểm O có tọa độ (0, 0), Ox, Oy lần lượt là trục hoành và trục tung và x, y là hoành độ và tung độ
b Hệ tọa độ thiết bị (DCS: Device Coordinate System)
Hệ toạ độ thiết bị là hệ toạ độ được dùng cho một thiết bị xuất cụ thể nào đó như máy in, màn hình, Trong hệ TĐ thiết bị, các điểm được biểu diễn bởi cặp toạ độ (x, y) Tuy nhiên, khác với hệ tọa độ thực là x, y N Điểm trong toạ độ thực được định nghĩa liên tục, còn trong toạ độ thiết bị thì rời rạc Ngoài ra, các tọa độ (x, y) của hệ tọa
độ thiết bị chỉ biểu diễn được trong một giới hạn nào đó của N
1.1.3.2 Điểm và đoạn thẳng
a Điểm
Điểm là thành phần cơ sở được định nghĩa trong một hệ tọa độ, đối với hệ tọa độ
2 chiều (x, y) mỗi điểm được xác định bởi hoành độ và tung độ, Ngoài thông tin tọa độ,
điểm còn có thông tin màu sắc
b Đoạn thẳng
- Biểu diễn tường minh: y = f(x)
Một đoạn thẳng được xác định nếu biết 2 điểm thuộc nó Phương trình đoạn thẳng
đi qua 2 điểm P(x1, y1) và Q(x2, y2) như sau:
1 2
1 2 1
1
x x
y y x
2
1
y y
x x x x
y y
Trang 15 (tức là khi x thay đổi thì y thay đổi theo)
- Biểu diễn không tường minh:axby c 0
1.1.4 Một số ứng dụng của đồ họa máy tính
Ngày nay, đồ họa máy tính được sử dụng trong rất nhiều lĩnh vực khác nhau như công nghiệp, thương mại, quản lý, giáo dục, giải trí, … Số lượng các chương trình đồ họa ứng dụng thật khổng lồ và phát triển liên tục, sau đây là một số ứng dụng tiêu biểu:
Q(x2,y2)
P(x1,y1)
Hình 1.2: Vẽ đoạn thẳng PQ
Trang 16Một khi đã thiết kế xong phần khung của đối tượng, các mô hình chiếu sáng, tô màu
và tạo bóng bề mặt sẽ được kết hợp để tạo ra kết quả cuối cùng rất gần với thế giới thực
1.1.4.2 Biểu diễn thông tin
Đây là các ứng dụng sử dụng đồ họa máy tính để phát sinh các biểu đồ, đồ thị,… dùng minh họa mối quan hệ giữa nhiều đối tượng với nhau Các ứng dụng này thường được dùng để tóm lược các dữ liệu về tài chính, thống kê, kinh tế, khoa học, toán học,
… giúp cho việc nghiên cứu, quản lý, … một cách có hiệu quả
Trang 178
Ngoài ra đồ họa máy tính còn giúp tạo ra các chương trình trò chơi, giải trí; hỗ trợ cho các kỹ xảo điện ảnh, …
1.1.4.4 Giáo dục và đào tạo
Hiện nay các chương trình mô phỏng cấu trúc của các vật thể, tiến trình của các phản ứng hóa học, hoạt động của các gói tin trên mạng máy tính, … được dùng rất nhiều trong việc hỗ trợ giảng dạy
Trong đào tạo, các ứng dụng mô phỏng được dùng để kiểm tra trình độ người lái, huấn luyện phi công, điều khiển giao thông, …
1.1.4.5 Giao tiếp giữa máy tính và người dùng
Mọi ứng dụng đều phải có giao diện giao tiếp với người dùng Giao diện đồ họa thực sự là một cuộc cách mạng mang lại sự thuận tiện và thoải mái cho người dùng ứng dụng Các ứng dụng dựa trên hệ điều hành MicroSoft Windows là một minh họa rất trực quan của giao diện đồ họa Các chức năng của các ứng dụng này được thiết kế cho người dùng làm việc thông qua các biểu tượng mô tả chức năng đó
Để chọn các chức năng, người dùng sử dụng chuột trỏ đến và nhấn vào các biểu tượng tương ứng Điểm thuận lợi chính khi dùng biểu tượng là kích thước không gian
mà nó chiếm ít hơn nhiều so với dùng văn bản để mô tả cho cùng một chức năng, ngoài
ra việc nắm bắt các chắc năng qua các biểu tượng sẽ dễ dàng hơn rất nhiều khi người dùng gặp trở ngại về mặt ngôn ngữ
1.2 Xây dựng các khối hình 3D
1.2.1 Các mô hình biểu diễn khối 3D
Để biểu diễn vật thể trong không gian 3 chiều ta có những cách biểu diễn như sau:
Trang 189
1.2.1.1 Polygon Meshes
Một vật thể 3D được biểu diễn theo mô hình Polygon Meshes (PM) là tập cạnh, đỉnh và các Polygon có mỗi cạnh được dùng chung với ít nhất một Polygon khác Một cạnh được nối với hai đỉnh Mỗi cạnh có thể được dùng chung bởi hai Polygon kề nhau Một đỉnh được dùng chung bởi ít nhất là hai cạnh Mỗi Polygon có thể biểu diễn theo hai cách khác nhau Và mỗi cách có thuận lợi, khó khăn riêng của nó
a Biểu diễn theo danh sách các đỉnh
Mỗi Polygon là danh sách các đỉnh, các đỉnh được lưu trữ theo một trật tự mà ta có thể đi “vòng” qua các đỉnh của Polygon Các cạnh là những cạnh nối giữa các đỉnh liền
kề nhau trong danh sách các đỉnh, và các cạnh giữa đỉnh đầu và đỉnh cuối trong danh sách Việc lưu trữ này tiết kiệm được vùng nhớ Mỗi đỉnh trong Polygon Meshes chỉ lưu trữ một lần duy nhất Và mỗi Polygon được biểu diễn bởi danh sách các chỉ số của các đỉnh Khi vẽ Polygon dạng outline cần phải tính ra các cạnh của Polygon dựa trên danh sách các đỉnh Vì thế mỗi cạnh dùng chung sẽ được vẽ hai lần dẫn đến làm chậm quá trình vẽ Mặt khác chúng ta gặp khó khăn trong việc tìm các Polygon dùng chung một cạnh để loại trừ việc vẽ hai lần cạnh này
Vấn đề này sẽ được khắc phục bởi cách biểu diễn Polygon bằng danh sách các cạnh thay vì danh sách các đỉnh
Trang 1910
b Biểu diễn theo danh sách các cạnh
Mỗi Polygon là con trỏ chỉ đến danh sách các cạnh (không phải là danh sách các đỉnh) Mỗi cạnh chỉ lưu trữ một lần trong danh sách cạnh Mỗi cạnh trong danh sách cạnh là con trỏ chỉ đến hai đỉnh trong danh sách các đỉnh và một hoặc hai Polygon chứa cạnh đó Nếu một cạnh chỉ thuộc duy nhất một Polygon thì hoặc P1 hoặc P2 sẽ là nul Các biểu diễn này thuận lợi hơn hai cách trên Chúng ta biết được cạnh nào dung chung bởi hai Polygon nào, hoặc là cạnh chỉ thuộc một Polygon thôi Đặc biệt khi vẽ outline vật, ta chỉ cần vẽ các cạnh trong danh sách các cạnh Điều này làm cho việc vẽ nhanh hơn, thay vì phải vẽ tất cả các Polygon
1.2.2 Tạo khối 3D
Mục tiêu của phần này là phân tích các công cụ để tạo các khối đa diện 3D sao cho các khối được tạo ra đa dạng và thực thi không quá phức tạp Có nhiều hướng để giải quyết vấn đề, có thể tóm lược như sau:
1.2.2.1 Sweep Solid
Tạo đường viền trên mặt phẳng 2D sau đó quay đường viền quanh một trục nào
đó ta sẽ được khối 3D theo mong muốn Có hai loại Sweep
Trang 2011
a Translational sweep
Ta dịch chuyển đường viền theo dọc một đoạn chiều dài nào đó, theo một hướng nào đó ta sẽ tạo được khối 3D Ưu điểm của phép quét này là tạo nên những vật 3D có hình dạng “thanh dài”
b Rotational Sweep
Khối 3D được tạo ra bằng cách quay đường viền quanh một trục, với một góc quay nào đó Ưu điểm của phương pháp này là được những khối tròn đa dạng Tuy nhiên, các đỉnh được tạo ra trong quá trình quay đường viền phụ thuộc vào số góc quay mỗi lần Vì vậy, khi tạo một vật thể nếu ta quay một góc 3600 thì ta có khối “đặc”, nếu quay một góc nhỏ hơn 3600 thì ta có được như là một phần “lớp vỏ”
Trang 2112
1.2.2.2.Sửa đổi khối từ khối được tạo ra theo hai phương pháp trên
Một số khối không có hình dạng theo chuẩn nào cả, vì thế ta không thể tính toán một cách cụ thể theo công thức toán học Một ý tưởng, ta chọn một khối được tạo ra từ hai phương pháp (PP) trên mà nó gần giống với khối ta mong muốn tạo, và có thể thay đổi tọa độ từng đỉnh của khối đến các vị trí khác nhau
Tá có thể tạo được khối gần giống nhau như mong muốn Tiếp theo ta chỉ cần ghi lại tọa độ của các đỉnh và cấu tạo các mặt nào đó, trên một mặt nào đó để làm cho hình khối của ta đa dạng thêm PP này có ưu điểm: không phức tạp lắm, số lượng đỉnh không phát sinh thêm ngoại trừ ta thêm vào theo nhu cầu
1.2.2.3 Các khối tạo từ công thức toán học
a Công thức tính
Các khối này được tạo ra bằng những cách tính toán cụ thể tọa độ đỉnh của khối, từng mặt sẽ bao gồm đỉnh nào dựa trên các thông số có thể thay đổi được Từ những thông số đó và dựa vào các công thức cụ thể của từng khối ta sẽ tính ra được tọa độ của một số điểm và sau đó nối các điểm trên cùng đường kinh tuyến và vĩ tuyến lại với nhau Mỗi khối khác nhau thì ta sẽ áp dụng công thức khác nhau, mỗi loại khối hình thì ta
sẽ tính được tọa độ các đỉnh tùy thuộc vào các thông số cụ thể của từng khối Cách tính như sau:
b Công thức của các khối hình cơ bản:
X R sin cos
Trong đó: R là bán kính của khối cầu: π/2 ≤ ≤ π/2; π ≤ ≤ π
Trang 2314
Trong đó: - R1 là bán kính của đường tròn vĩ tuyến nhỏ nhất
- R2 là khoảng cách từ tâm đến đường tròn vĩ tuyến
1.2.2.4 Tổ chức điểm trong không gian 3D và giải thuật
Ta sử dụng hai bản ghi Position và Rposition để lưu trữ tọa độ đỉnh các khối: Type
Trang 2415
lưu trữ các giá trị nguyên của các tọa độ đỉnh này, nó xác định vị trí tương đối của các đỉnh Ta sử dụng mảng OriginPos kiểu Position để chứa các vị trí tuyệt đối được khởi gán ngay từ lúc đầu và mảng RoundedPos chứa các vị trí tương đối đã được làm tròn thông qua hàm Round() Ta dùng thủ tục Tform1.Khoitao(so:integer) để tính toán tọa
độ đỉnh của các khối hình, các tọa độ này sẽ được lưu trử trong mảng OrginPos
Trang 254: for i:=0 to SoVT - 1 do //Non
Trang 26Giả sử một điểm P(x,y,z,1) được biến đổi tỷ lệ thành P’(x’,y’,z’,1) khi đó, ta sẽ có
ma trận biến hình như sau:
1000
00
0
000
000
z y x
S S
Trang 270001
z y
0100
00cossin
00sincos
0cos1
sin
0000
0sin0
0
0cossin
0
0sincos
0
001
Trang 2819
1.3.4 Phép biến dạng (co dãn):
Tạo ra sự biến dạng cho đối tượng bởi công việc thay giá trị của một hoặc nhiều tọa độ bằng các hệ số tỉ lệ của cột thứ ba Nghĩa là điều khiểu sự biến dạng theo mặt phẳng tạo bởi hai trục tọa độ được điều khiển bởi trục thứ ba Ta áp dụng ma trận biến hình sau:
1000
01
01
01
hzy hzx
hyz hyx
hxz hxy Msh
Với hxy là lượng biến dạng x dọc theo y, hyx là lượng biến dạng y dọc theo trục x
- Ma trận biến dạng dọc theo trục x:
1000
0100
0010
01
][
hxz hxy x
Msh
- Ma trận biến dạng dọc theo trục y:
1000
0100
01
0001]
[Msh y hyx hyz
- Ma trận biến dạng dọc theo trục z:
1000
01
0010
0001][
hzy hzx x Msh
1.3.5 Giải thuật
Như chúng ta đã biết, để có thể tạo ra được một mô hình nhân vật từ các khối hình
cơ bản thì đây là một điều rất khó Do đó, nhằm giải quyết vấn đề này thì thay vì phải tạo
Trang 2920
ra cả nhân vật ta sẽ chia nhân vật đó thành nhiều “bộ phận” sau đó ta sẽ lần lượt tạo từng
bộ phận một và ghép các bộ phận đó lại với nhau để tạo ra nhân vật như mong muốn Như vậy, một nhân vật sẽ có nhiều bộ phận và mỗi bộ phận sẽ có nhiều khối hình cơ bản Trong đồ án này ta sử dụng mảng hai chiều Bophan[i][j] để lưu trữ dữ liệu của khối hình j trong bộ phận thứ i
Trong bảng quá trình tạo từng bộ phận ta sẽ cần phải biến đổi các khối hình cơ bản bằng hai phép biến đổi là tịnh tiến, phép quay và phép co dãn Ta đã biến một nhân vật nói chung hay một bộ phận nói riêng được tạo ra từ rất nhiều khối hình cơ bản Do
đó, để tạo ra được hình ảnh như ý muốn thì ta phải biến đổi các khối hình cơ bản Chương trình này cho phép ta có thể chọn một khối hình bất kỳ nào đó đã được tạo ra
để có thể biến đổi chúng cho phù hợp Khi ta muốn thay đổi khối hình nào đó thì ta phải chọn giá trị “bộ phận” trong ComBP và giá trị “khối hình” trong ComKH sau đó thực hiện các phép biến đổi Ngoài ra chương trình còn cho phép ta có thể dịch chuyển cũng như quay nhiều khối hình (trong cùng một bộ phận) bằng cách chọn RadioButton1 (all) và sau đó thực hiện các phép tịnh tiến, quay
1.3.5.1 Tịnh tiến
Khi ta tịnh tiến khối hình cơ bản nào dó tương ứng với giá trị “bộ phận” ở
ComBP và giá trị “khối hình” ở ComKH thì khi đó các giá trị dx, dy, dz sẽ có thể thay
đổi tùy thuộc việc ta chọn hướng tịnh tiến Khi phép tịnh tiến được thực hiện thì các
thành phần dx, dy, dz trong bảng bộ phận bophan[bphan][khối hình] sẽ thay đổi tương
ứng với phép tịnh tiến Sau đó ta sẽ xóa hình ảnh củ bằng thủ tục New và lần lượt là các khối hình cơ bản (sau khi đã biến đổi) dựa trên các thành phần của bảng Bophan
Giải thuật 1.2
Procedure Tform1.New;
Begin
Trang 3122
dy:=Bophan[StrToInt(ComBP.text)][StrToInt(ComKH.text)].dy-20; dz:=Bophan[StrToInt(ComBP.text)][StrToInt(ComKH.text)].dz; ChangeLayer(Bophan[StrToInt(ComBP.text)],1);
end;
else if All.Checked=tru then
for i:=1 to TTKH[StrToInt(ComBP.text)] do
- Thủ tục ChangerLayer(và sbd:KH;kieu:integer) với kieu=1 thì nó có tác dụng sẽ
cập nhật lại các thành phần dx, dy, dz trong bảng Bophan của “bộ phận” tương ứng với
giá trị của ComBP và “khối hình” tương ứng với giá trị trong ComKH
Trang 3223
1.3.5.2 Co dãn
Trong chương trình (CT) này phép co dãn có tác dụng phóng to hay thu nhỏ các khối hình (KH) cơ bản Giả sử ta muốn thay đổi một khối hình nào đó, khi đó việc đầu tiên là ta phải xác định xem KH cơ bản đó tương ứng với giá trị nào của “bộ phận”,
“khối hình” Sau đó ta sẽ chọn giá trị “bộ phận” ở trong ComBP, “khối hình” trong
ComKH và ta sẽ thay đổi giá trị của r1, r2, r3 tùy thuộc vào từng KH và việc phóng to hay thu nhỏ
Để giải quyết được vấn đề này chúng ta thực hiện như sau: khi thực hiện phép co
dãn thì tùy thuộc vào từng KH các giá trị r1, r2, r3 có thể thay đổi, ta sẽ lưu lại giá trị của
các thành phần r1, r2, r3 trong Bophan[bphan][khoihinh] sẽ được update lại bằng thủ tục ChangeLayer(sbd,2) Cuối cùng ta sẽ xóa hình ảnh củ bằng thủ tục New và vẽ lại lần lượt lại các khối hình cơ bản (sau khi đã biến đổi) dựa trên các thành phần củ mảng BP
Để có thể biến đổi được các giá trị r1, r2, r3 ta sử dụng công cụ SpinEdit Ba thủ tục Ra1Change(sender:Tobject), Ra2Change(sender:TObject) sẽ thực hiện việc co dãn trên
Trang 3324
1.3.5.3 Quay hình
Cũng tương tự như các phép biến hình trên, trong đề tài này ta thực hiện ba phép
quay hình cơ bản là quay quanh mình nó theo các trục OX, OY, OZ
Để giải quyết được vấn đề này chúng ta thực hiện như sau: Khi thực hiện phép
quay hình khi đó các thành phàn gx, gy, gz trong Bophan[bpha][khoihinh] sẽ được
update tại bằng thủ tục ChangeLayer(Bophan[StrToInt(ComBP.text)] Cuối cùng ta sẽ xóa hình ảnh cũ bằng thủ tục New và vẽ lại lần lượt các khối hình cơ bản (sau khi đã biến đổi) dựa trên các thành phần của mảng Bophan Ta sử dụng ba hàm
QuayZClick(sender:Tobject), để thực hiện các phép quay các khối hình cơ bản quanh
nó theo các trục OX, OY, OZ
//ghi lai nhung thay doi cua bo phan
End;
Else if All.Checked=true then
For i:=1 to TTKH[StrToInt(ComBP.text)] do
Trang 3425
Begin
gx:=bophan[StrToInt(ComBP.text)[i].gx+5; gy:=bophan[StrToInt(ComBP.text)[i].gy;
gz:=bophan[StrToInt(ComBP.text)[i].gz;
ComKH.text:=IntToStr(i);
ChangeLayer(Bophan[StrToInt(ComBP.text)],3); End;
Trang 3526
CHƯƠNG II
HỆ TỌA ĐỘ BIỂU DIỄN CÁC ĐỐI TƯỢNG
Các đối tượng trong thế giới thực phần lớn là các đối tượng ba chiều, nên việc thể hiện đối tượng ba chiều này sao cho thể hiện được các tính chất phối cảnh, độ sáng tối,
… là cần thiết Các vấn đề này không ít nhiều liên quan đến các hệ trục tọa độ biểu diễn các đối tượng
2.1 Một số hệ tọa độ
2.1.1 Hệ họa độ cục bộ (Local coordinates)
Là hệ tọa độ (HTĐ) gắn liền với khối Khi vật thể di chuyển trong HTĐ thực, thì tọa độ các đỉnh không thay đổi so với hệ tọa độ local
Mọi đối tượng đồ họa trong không gian ba chiều được định nghĩa như là tập hợp các đỉnh có mối liên hệ gốc tọa độ nội bộ (0, 0, 0), như vậy mô hình một đối tượng khi khởi tạo đều tập trung về gốc tọa độ (0, 0, 0) Tuy nhiên chúng ta cũng có thể di chuyển đối tượng nhưng không làm thay đổi tọa độ các đỉnh (so với gốc tọa độ nội bộ),
mà chỉ cập nhật vị trí của gốc tọa độ nội bộ trong thế giới thực
2.1.2 Hệ tọa dộ thế giới thực (World coordinates)
Là hệ tọa độ được dùng để mô tả đối tượng thế giới thực Khi vật thể di chuyển trong hệ tọa độ thực thì các đỉnh sẽ thay đổi theo Các tọa độ thế giới thực cho phép biểu diễn bất kỳ thứ nguyên nào (cm, mm, inche, …) và có thể nhỏ tùy ý
Hệ thống tọa độ thế giới giống như vũ trụ, có tâm là (0, 0, 0) và mở rộng ra các hướng vô hạn, tuy nhiên để biểu diễn được trong máy tính kích thước hệ tọa độ được
Trang 36giới hạn (Do hạn chế về kích thước bộ nhớ), hệ thống chỉ có thể là 32.000 x 32.000 pixel
và bên trong giới hạn vũ trụ này mọi đối tượng sẽ được chứa và điều khiển trong đó
2.1.3 Hệ tọa độ quan sát (Camera coordinates)
Là hệ tọa độ của người quan sát Vật trong tọa độ thực sẽ được ánh xạ vào tọa độ camera, và chiếu lên mặt phẳng chiếu, mặt phẳng vuông góc với đường nối hai gốc tọa
độ của hệ tọa độ thực và hệ tọa độ camera
Một đối tượng được xác đình trên hệ họa độ camera quan sát, đó thực sự là ảnh hưởng mà người quan sát thấy được Đối với hệ thống tọa độ camera quan sát ta cần quan tâm đến hai yếu tố:
- Tâm quan sát (View-point): là một điểm trong hệ thống tọa độ thế giới thực, tại
Trang 37- OO‟: xác định vật thể đang quan sát xa hay gần
- De: khoảng cách giữa O‟ và mặt phẳng chiếu
- Hai góc và φ nếu thay đổi sẽ thay đổi góc quan sát vật thể
Hình 2.4: Phép chiếu ảnh 3D lên mặt phẳng quan sát
Trang 3829
- (x, y, z) là tọa độ của vật thể trong hệ trục thực
- (x0, y0, z0) là tọa độ của vật thể trong hệ trục quan sát
- (x c , y c) là tọa độ điểm chiếu tương ứng
Một vật được biến đổi tu thế giới thực vào tọa độ camera như sau:
( )
z kcos cos ysin cos zsin Rh
Tọa độ điểm (x0, y0, z0) sẽ được chiếu theo công thức:
Để định vị một điểm trong không gian ba chiều ta có thể chọn nhiều tọa độ Thứ
nhất: là hệ trực tiếp, còn gọi là bàn tay phải vì ngón trỏ theo hướng trục Z Thứ hai: là
hệ gián tiếp (hai bàn tay trái) có ngón cái của bàn tay theo quy luật trên Nói chung nếu
ta xem mặt phẳng XY thì trục Z trong hệ trục tọa độ trực tiếp hướng vào mắt của người
nhìn trong khi ở hệ trục gián tiếp nó lại chỉ theo hướng chiều ngược lại
Trang 3930
Để định vị một điểm P trong không gian, ta luôn luôn dùng hệ trực tiếp và trong
hệ trục này chúng ta làm việc với hai hệ tọa độ ở hình sau:
2.2 Các phép chiếu của không gian trên mặt phẳng
Hình 2.8: Định vị điểm P với hệ tọa độ 2
Hình 2.5: Định vị theo tọa độ gián tiếp
Hình 2.5: Định vị theo tọa độ gián tiếp
Hình 2.6: Định vị theo tọa độ trực tiếp
Trang 4031
Phép chiếu phối cảnh không giữ nguyên dạng vật thê Vật thể được biểu hiện sự hội tụ của những đường song song với mặt phẳng chiếu thì qua phép phối cảnh vẫn song song với nhau Còn tất cả các đường song song nhưng không có tính chất trên đều hội tụ qua phép phối cảnh đến một điểm
Tất cả các phép phối cảnh đều được quy định bởi năm bước sau:
- Hướng của mặt phẳng chiếu so với vật thể
- Độ cao của tâm chiếu (mắt) so với vật thể
- Khoảng cách từ tâm chiếu đến vật thể