Tải bản đầy đủ (.pdf) (98 trang)

Tìm hiểu về ảnh 3d và ứng dụng trong khoa học giáo dục

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.82 MB, 98 trang )

LỜ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ố.

Hà Nội, ngày 22 tháng 10 năm 2014
HỌC VIÊN THỰC HIỆN

Nguyễn Thành Công


TÀ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.


CÁC WEBSITE THAM KHẢO:
1.
2.
3.

4.
5.

6.
7.


DANH 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


Hì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


MỤ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


2.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


MỞ ĐẦ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.


Trong 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.


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.

1


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

2


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:

3


- 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.2.2. Phần mềm
Phần mềm đồ họa có thể phân thành hai loại: các công cụ lập trình và các trình
ứng dụng đồ họa phục vụ cho một mục đích nào đó.
Các công cụ lập trình cung cấp một tập các hàm đồ họa có thể được dùng trong
các ngôn ngữ lập trình cấp cao như Pascal, C/C++, Java, … hay thậm chí có cả một thư
viện đồ họa có thể nhúng vào các ngôn ngã lập trình cấp bất kỳ như OpenGL, DirectX.
Các hàm cơ sở của nó bao gồm việc tạo các đối tượng cơ sở của hình ảnh như đoạn
thẳng, đa giác, đường tròn, … thay đổi màu sắc, chọn khung nhìn, biến đổi affine, …
Các ứng dụng đồ họa được thiết kế cho những người dùng không phải là lập trình

viên, cho phép người dùng tạo các đối tượng, hình ảnh, … mà không cần quan tâm tới
việc chúng được tạo ra như thế nào. Ví dụ như là Photoshop, AutoCAD, …

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.

4


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:
y  y1 y2  y1

;
x  x1 x2  x1

y  y1
x  x1

x2  x1 y2  y2

5


 x2  x1  y   y2  y1  x  y1  x2  x1   x1  y2  y1 
Q(x2,y2)

 y  y1 
 y2  y1 
y 2

 x  y1  
 x1 ; y  kx  m
 x2  x1 
 x2  x1 
k

y2  y1
Độ dốc hay hệ số góc của đường
x 2  x1

P(x1,y1)

m  y1  kx1 Đoạn chắn trên trục y
y  k x (tức là khi x thay đổi thì y thay đổi theo)

Hình 1.2: Vẽ đoạn thẳng PQ

- Biểu diễn không tường minh: ax  by  c  0 .
Ta có:

 y2  y1  x   x2  x1  y   x2  x1  y1   y2  y1  x1  0

 y2  y1  x   x2  x1  y

 x2 y1  x1 y2  0 hay rx  sy  t  0

 y2  y1  x   x2  x1  y  x2 y1  x1 y2  0 hay
s    x2  x1  ;

rx  sy  t  0


r   y2  y1  và t  x2 y1  x1 y2

- Biểu diễn thông qua tham số:
P  u   P1  u  P2  P1 u  0,1
x  u   x1  u  x2  x1  ; y  u   y1  u  y 2  y1

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:

6


1.1.4.1. Hỗ trợ thiết kế
Một trong những ứng dụng lớn nhất của đồ họa máy tính là hỗ trợ thiết kế (CAD
– Computer Aided Design). Ngày nay CAD đã được sử dụng hầu hết trong việc thiết
kế các cao ốc, ô tô, máy bay, tàu thủy, máy tính, trang trí mẫu vải và rất nhiều sản
phẩm khác.
Sử dụng các chương trình này, đầu tiên các đối tượng được hiển thị dưới dạng các
phác thảo của phần khung, mà từ đó có thể thấy được toàn bộ hình dạng và các thành
phần bên trong của các đối tượng. sử dụng kỹ thuật này, người thiết kế sẽ dễ dàng nhận
thấy ngay các thay đổi của đối tượng khi tiến hành hiệu chỉnh các chi tiết hay thay đổi
góc nhìn, …
Mộ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ả.

1.1.4.3. Lĩnh vực giải trí, nghệ thuật
Trong lĩnh vực nghệ thuật, các chương trình máy tính như Pain Shop Pro, Adobe
Photoshop, 3D Studio, … hỗ trợ rất đắc lực cho họa sĩ, các nhà tạo mẫu trong việc thiết
kế các hình ảnh sống động, và rất thực. Với các chương trình này, người họa sĩ được
máy tính tạo cho cảm giác y như đang làm việc ngoài đời thực bằng cách cung cấp các
công cụ như khung vẽ, giá vẽ, bảng pha màu, các hiệu ứng ba chiều, … làm cho họ
cảm thấy rất thoải mái và tiện lợi.

7


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:

8


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
V2
V = (V1, V2, V3, V4)
= ((x1, y1, z1),…,(x4, y4, z4))

V1

V3
P1 = (1,2,4)

P2 = (4,2,3)
V4

Hình 1.3: 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.

9


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.1.2. Mô hình WireFrame

Mô hình WireFrame biểu diễn vật thể 3D trong hai danh sách: danh sách các đỉnh
và danh sách các cạnh.
Tuy nhiên, việc tô màu vật thể 3D cần phải xử lý các mặt, do đó ta thường thêm
vào cấu trúc lưu trữ các mặt của vật thể. Cấu trúc dữ liệu của khối 3D sẽ được trình bày
trong phần sau. Khi vẽ bằng mô hình WireFrame ta thấy vật thể có vẽ rỗng và không
thực. Để hoàn thiện hơn người ta dung kỹ thuật tô bóng và khử khuất để hoàn thiện kết
quả. Nhưng vẽ WireFrame thì nhanh hơn và thường được dùng trong những bước đầu
tiên. Dường như tập hợp các mặt này hình thành “lớp vỏ” của vật thể. WireFrame
thường được dùng để vẽ mô hình khối đa diện.

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.

10


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”.

Hình 1.5: Sau khi “translational sweep”

Hình 1.4: Đường viền trên mặt 2D


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ỏ”.

Đường viền C

u

y

x
Hình 1.6: Đường viền trên mặt 2D

Hình 1.7: Đường viền C quay trục z một góc u

11


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:
- Hình cầu:
X : R *sin( ) *cos( ) ;
Y : R * cos( );
X : R * sin( ) * cos ( )

Trong đó: R là bán kính của khối cầu: π/2 ≤  ≤ π/2; π ≤  ≤ π

12


- Hình Ellipesoid:
X : R2 *sin( )*cos( ) ;

Y : R1 *cos( )
Z : R3 *sin( )*sin( )
Trong đó: R1, R2, R3 là bán kính của khối Ellipsoid: π/2 ≤  ≤ π/2; π ≤  ≤ π


- Hình trụ:
X : R1 * cos( )
Y : R1 *sin( )

Z : R2 * i
Trong đó: R1 là bán kính của hình trị tròn, R2 là mức thay đổi chiều cao của trụ tròn:
π/2 ≤  ≤ π/2

- Hình nón:
X : R1 * cos( ) ;
Y : R1 * sin( )

Z : R2 * i
Trong đó: R1 là bán kính của đáy nón, R2 là mức thay đổi chiều cao của nón
π/2 ≤  ≤ π/2

- Hình xuyến:
X : ( R2  R1 * sin( )) * cos( ) ;
Y : R2 * cos( ) ;
Z : ( R2  R1 * sin( )) * sin( ) ;

13


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
π ≤  ≤ π;

π≤≤π


- Hình nón cụt:
X : 10  i  * R1 /10* sin( )

Y : R2 * i / 6 ;
Z : 10  i  * R1 /10* sin( )

Trong đó: R1 là bán kính của đáy tròn, R2 là mức thay đổi chiều cao của nó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
Position = record
x: real;
y: real;
z: real;
end;
Rposition = record
x: integer;
y: integer;
z: integer;
end;

Ta dùng bản ghi kiểu Position để lưu trữ tọa độ của các đỉnh được tính toán ra từ
các công thức cụ thể của từng khối hình, đây chính là các vị trí tuyệt đối của các đỉnh.
Tuy nhiên, các giá trị này là không nguyên do đó ta sử dụng bản ghi kiểu Rposition để

14



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.
Giải thuật 1.1:
Procedure Tform1.Khoitao(so:integer);
var;
i: integer;
j: interger;
m: interger;
begin
p:=Pi/180;
m:=0;
case so of
1:

for i:=0 to SoVT - 1 do //Cau
for j:=0 to SoKT - 1 do
begin
OriginPos[i,j].X:=R1*sin(i*DoVT*p)*cos(j*DoKT*p);
OriginPos[i,j].Z:=R1*sin(i*DoVT*p)*sin(j*DoKT*p);
OriginPos[i,j].X:=R1*cos(j*DoKT*p);
end;

2:

for i:=0 to SoVT - 1 do //Ellipesoid
for j:=0 to SoKT - 1 do
begin

OriginPos[i,j].X:=R2*sin(i*DoVT*p)*cos(j*DoKT*p);
OriginPos[i,j].Z:=R3*sin(i*DoVT*p)*sin(j*DoKT*p);
OriginPos[i,j].Y:=R1*cos(j*DoKT*p);

15


end;
3:

for i:=0 to SoVT - 1 do //Tru
for j:=0 to SoKT - 1 do
begin
OriginPos[i,j].X:=R1*cos(j*DoKT*p);
OriginPos[i,j].Z:=-R5i; //doi gia tri xuat phat=6
OriginPos[i,j].Y:=R1*sin(j*DoKT*p); //Them day va nap
end;

4:

for i:=0 to SoVT - 1 do //Non
for j:=0 to SoKT - 1 do
begin
m:=R4*i;

//Doi value = 3

OriginPos[i,j].X:=m*cos(j*DoKT*p);
OriginPos[i,j].Z:=-R5*i;


//Doi value = 6

OriginPos[i,j].Y:=m*sin(j*DoKT*p);
end;
5:

for i:=0 to SoVT - 1 do //Xuyen
for j:=0 to SoKT - 1 do
begin
OriginPos[i,j].X:=(R1+R2*sin(i*DoVT*p*2)*cos(j*DoKT*p);
OriginPos[i,j].Z:=(R1+R2*sin(i*DoVT*p*2)*sin(j*DoKT*p);
OriginPos[i,j].Y:=R2*cos(j*DoKT*p*2);
end;

6:

for i:=0 to SoVT - 1 do //Non cut
for j:=0 to SoKT - 1 do
begin
m:=(i+10)R4;

//Doi value = 3

OriginPos[i,j].X:=m*cos(j*DoKT*p);
riginPos[i,j].Z:=-R5*i; //Doi value = 6
OriginPos[i,j].Y:=m*sin(j*DoKT*p);

16



×