Ngày nay nhờ công nghệ đồ họa máy tính phát triển, xuất hiện rất nhiều các phần mềm hỗ trợ tính toán và vẽ hình học hữu ích phục vụ cho công tác giảng dạy và học tập hình học, ví dụ một
Trang 2TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
Trang 3Lời cảm ơn
Mục lục
Danh mục từ viết tắt
Danh mục bảng
Danh mục hình vẽ
MỞ ĐẦU 1
1 Lý do chọn đề tài 1
2 Mục đích nghiên cứu 3
3 Khách thể và đối tượng nghiên cứu 3
4 Giả thiết khoa học 4
5 Nhiệm vụ nghiên cứu 4
6 Ý nghĩa lý luận và thực tiễn của đề tài 4
7 Phương pháp nghiên cứu 4
8 Cấu trúc luận văn 5
Chương 1 Đồ họa và vai trò của đồ họa đối với học sinh 6
1.1 Đồ họa máy tính 6
1.1.1 Giới thiệu đồ họa máy tính 6
1.1.2 Vai trò của đồ họa máy tính đối với nhận thức 6
1.1.2.1 Hỗ trợ thiết kế 7
1.1.2.2 Biểu diễn thông tin 8
1.1.2.3 Giải trí nghệ thuật 8
1.1.2.4 Giáo dục và Đào tạo 8
1.1.2.5 Giao tiếp máy tính và người dùng 9
1.2 Đồ họa hình học phổ thông 10
1.2.1 Các đối tượng đồ họa hình học phổ thông 10
1.2.2 Yêu cầu xây dựng mô phỏng hình học tại nhà trường phổ thông 10
1.2.3 Một số vai trò của mô phỏng trong học tập hình học phổ thông 11
1.2.3.1 Truyền tải nội dung kiến thức hình học 11
1.2.3.2 Giáo dục tính thẩm mỹ 12
1.2.3.3 Rèn luyện khả năng quan sát 12
1.2.3.4 Phát triển tư duy sáng tạo và nhân cách học sinh 12
1.2.4 Giải pháp mô phỏng 12
1.3 Nhu cầu xử lí đồ họa MATLAB cho toán học phổ thông 13
1.3.1 Khả năng xử lí dữ liệu 13
Trang 42.1 Tổng quan về ngôn ngữ lập trình MATLAB 16
2.1.1 Không gian làm việc của MATLAB 16
2.1.2 Biến ngôn ngữ MATLAB 17
2.1.3 Kiểu dữ liệu trong MATLAB 18
2.1.4 Cách tạo M-file 19
2.1.5 Mảng, ma trận, vecto 20
2.1.6 Các phép toán trên ma trận, vecto 20
2.1.7 Các toán tử quan hệ 21
2.1.8 Các toán tử logic 22
2.1.9 Vòng lặp rẽ nhánh 22
2.1.10 Vòng lặp điều khiển 22
2.1.10.1 Vòng lặp for 22
2.1.10.2 Vòng lặp while 23
2.2 Một số khía cạnh liên quan đến đồ họa 23
2.3 Chuẩn hóa tham số cho các đối tượng cơ sở 23
2.4 Xử lí các đối tượng đồ họa cơ sở thuộc hình học phẳng 24
2.4.1 Điểm trong mặt phẳng 24
2.4.2 Tạo nhãn điểm, chú thích 24
2.4.3 Đoạn thẳng trong mặt phẳng 25
2.4.4 Vecto trong mặt phẳng 25
2.4.5 Đường thẳng trong mặt phẳng 27
2.4.6 Đa giác trong mặt phẳng 28
2.4.7 Đường tròn trong mặt phẳng 29
2.4.8 Cung tròn trong mặt phẳng 30
2.5 Xử lí các đối tượng đồ họa cơ sở thuộc hình học không gian 32
2.5.1 Điểm trong không gian 32
2.5.2 Tạo nhãn điểm, chú thích 32
2.5.3 Đoạn thẳng trong không gian 32
2.5.4 Vecto trong không gian 33
2.5.5 Đường thẳng trong không gian 34
2.5.6 Mặt phẳng 35
2.5.7 Đa giác 37
2.5.8 Đường tròn, cung tròn trong không gian 38
2.5.8.1 Đường tròn 38
2.5.8.3 Cung tròn 41
2.5.9 Hình đa diện, khối đa diện 42
Trang 52.5.10.1 Mặt cầu 44
2.5.10.2 Mặt trụ 47
2.5.10.3 Mặt nón 51
2.6 Kết luận chương 2 53
Chương 3 Xây dựng mô phỏng trong MATLAB 54
3.1 Đặt vấn đề 54
3.1.1 Xác định, phân tích đối tượng cần mô phỏng 54
3.1.2 Giải tích hóa các đối tượng cơ sở 55
3.1.3 Sử dụng các đối tượng cơ sở đã được xử lí để hoàn thành kịch bản mô phỏng 56
3.2 Thực hành xây dựng mô phỏng sự tương giao giữa đường thẳng và mặt cầu 56 3.2.1 Đường thẳng không cắt mặt cầu 56
3.2.1.1 Giải tích hóa các đối tượng cơ sở 57
3.2.1.2 Kịch bản vẽ mô phỏng 57
3.2.1.3 Kết quả thực hiện qua giao diện C# 57
3.2.2 Đường thẳng tiếp xúc với mặt cầu 58
3.2.2.1 Giải tích hóa các đối tượng cơ sở 58
3.2.2.2 Thực hiện vẽ đối tượng 59
3.2.2.3 Kết quả thực hiện qua giao diện C# 59
3.2.3 Đường thẳng cắt mặt cầu tại hai điểm phân biệt 60
3.2.3.1 Giải tích hóa đối tượng cơ sở 60
3.2.3.2 Kịch bản vẽ mô phỏng 60
3.2.3.3 Kết quả thực hiện qua giao diện C# 61
3.3 Giao diện C# truy cập bài thực hành 61
3.3.1 Giới thiệu 61
3.3.2 Tạo lớp đồ họa từ các hàm trong MATLAB cho C# 61
3.3.2.1 Lớp đồ họa 2D 62
3.3.2.2 Lớp đồ họa 3D 62
3.3.2.3 Lớp thực hiện một số chức năng chung 62
3.3.2.4 Các bước thực hiện 63
3.4 Kết luận chương 3 66
Kết luận 67
Kết quả đạt được 67
Trang 6Tiếng anh 69
Phụ lục 70
1 Đồ họa MATLAB 70
1.1 Đồ họa phẳng 70
1.1.1 Lệnh vẽ plot 70
1.1.2 Kiểu đường, dấu và màu 71
1.1.3 Đồ thị lưới, hộp chứa trục, nhãn, chú thích 72
1.1.4 Hệ trục tọa độ 73
1.1.5 Thao tác với đồ thị 74
1.2 Đồ họa không gian 75
1.2.1 Vẽ đường trong không gian 75
1.2.2 Đồ thị bề mặt, lưới trong không gian 76
1.2.3 Bảng màu 76
2 Phương pháp toạ độ 77
3 Phương pháp tọa độ trong hình học phẳng 78
3.1 Hệ tọa độ Descartes 78
3.2 Vecto trong mặt phẳng 78
3.2.1 Tọa độ vecto 78
3.2.2 Các phép toán vecto 79
3.3 Đường thẳng trong mặt phẳng 79
3.4 Khoảng cách trong mặt phẳng 80
3.4.1 Khoảng cách giữa hai điểm 80
3.4.2 Khoảng cách từ một điểm đến một đường thẳng 80
3.5 Sự tương giao trong mặt phẳng 80
3.5.1 Tương giao giữa hai đường thẳng trong mặt phẳng 80
4 Phương pháp tọa độ trong hình học không gian 81
4.1 Hệ trục tọa độ trong không gian 81
4.1.1 Hệ tọa độ Descartes trong không gian 81
4.1.2 Hệ tọa độ Cầu 81
4.1.3 Quan hệ giữa tọa độ Descartes và tọa độ Cầu 81
4.2 Vecto trong không gian 82
4.2.1 Tọa độ vecto trong không gian 82
4.2.2 Các phép toán vecto 82
Trang 74.5.2 Tương giao giữa hai mặt phẳng 85
4.5.3 Tương giao giữa hai đường thẳng 85
4.6 Khoảng cách trong không gian 86
4.6.1 Khoảng cách giữa hai điểm phân biệt 86
4.6.2 Khoảng cách từ một điểm đến một mặt phẳng 86
4.6.3 Khoảng cách từ một điểm đến một đường thẳng 87
4.6.4 Khoảng cách ngắn nhất giữa hai đường thẳng chéo nhau 87
5 Một số kỹ thuật hiển thị đối tượng đồ họa 87
5.1 Kỹ thuật vẽ xấp xỉ 87
5.2 Kỹ thuật xén hình 88
5.2.1 Xén điểm 88
5.2.2 Xén đường thẳng 88
5.2.3 Xén mặt phẳng 91
5.3 Biến đổi hệ tọa độ trong không gian 93
5.3.1 Quy ước hệ trục tọa độ 93
5.3.2 Hệ tọa độ thuần nhất 94
5.3.3 Phép tịnh tiến 94
5.3.4 Phép quay 95
5.3.5 Phép biến đổi hệ trục tọa độ 97
Trang 8PT Phổ thông
THPT Trung học phổ thông
MATLAB Phần mềm MATLAB
BGD&DT Bộ Giáo dục và Đào tạo
GD&DT Giáo dục và Đào tạo
CNTT Công nghệ thông tin
Trang 9Bảng 2 Bảng các toán tử quan hệ trong MATLAB 21
Bảng 3 Bảng các toán tử logic 22
Bảng 4 Bảng thuộc tính đường đồ thị 72
Bảng 5 Bảng đặc tính cơ bản của hệ trục tọa độ 73
Bảng 6 Bảng màu 77
Trang 10Hình 2 Đồ họa giải trí - nghệ thuật 8
Hình 3 Đồ họa trong Giáo dục Đào tạo 9
Hình 4 Tương tác đồ hoạ người-máy 9
Hình 5 Một số dạng biểu diễn của mặt cầu trong MATLAB 15
Hình 6 Không gian làm việc MATLAB 17
Hình 7 Các kiểu dữ liệu MATLAB 19
Hình 8 Đường thẳng trong mặt phẳng 23
Hình 9 Xử lí vecto 2D 25
Hình 10 Đa giác phẳng 28
Hình 11 Phân hoạch đường tròn 29
Hình 12 Cung tròn AB 30
Hình 13 Xử lí vecto 3D 33
Hình 14 Đường tròn trong hệ tọa độ địa phương và toàn cục 39
Hình 15 Phân tích hình đa diện 43
Hình 16 Biểu diễn hình hộp 44
Hình 17 Mặt trụ trong hệ tọa độ địa phương và toàn cục 47
Hình 18 Đường thẳng không cắt mặt cầu trong SGK 56
Hình 19 Mô phỏng MATLAB đường thẳng không cắt mặt cầu 57
Hình 20 Hình vẽ đường thẳng tiếp xúc mặt cầu trong SGK 58
Hình 21 Mô phỏng MATLAB đường thẳng tiếp xúc với mặt cầu 59
Hình 22 Đường thẳng cắt mặt cầu tại hai điểm phân biệt (SGK) 60
Hình 23 Mô phỏng MATLAB đường thẳng cắt mặt cầu tại hai điểm 61
Hình 24 Tạo gói thư viện graphics 63
Hình 25 Tạo các lớp trong gói graphics 63
Hình 26 Build ứng dụng graphics thành công cho Net 64
Hình 27 Tạo ứng dụng DemoMatlab trong VS 2008 64
Trang 11Hình 31 Vẽ 2 đồ thị đồng thời 71
Hình 32 Biểu diễn thuộc tính đồ thị 71
Hình 33 Biểu diễn chú thích, ký hiệu 73
Hình 34 Hiển thị đa cửa sổ trên một figure 75
Hình 35 Biểu diễn đường bằng lệnh plot3 75
Hình 36 Đồ thị lưới trong không gian 76
Hình 37 Hệ tọa độ Descartes (Oxy) 78
Hình 38 Vecto trong mặt phẳng 79
Hình 39 Hệ tọa độ Descartes trong không gian 81
Hình 40 Quan hệ giữa tọa độ Descartes và tọa độ Cầu 82
Hình 41 Vùng xén trong mặt phẳng 89
Hình 42 Vùng xén hình hộp trong không gian 91
Hình 43 Các hệ tọa độ theo quy ước bàn tay phải (a) 93
và quy ước bàn tay trái (b) 93
Hình 44 Phép tịnh tiến 94
Hình 45 Phép quay quanh trục x 96
Hình 46 Phép quay quanh trục y 96
Hình 47 Phép quay quanh trục z 97
Trang 12MỞ ĐẦU
1 Lý do chọn đề tài
Xuất phát từ xu thế hội nhập và toàn cầu hoá, gắn với sự phát triển chung của thế giới, việc ứng dụng CNTT trong mọi mặt đời sống là điều kiện tiên quyết để phát triển kinh tế xã hội Một trong những nhiệm vụ trọng tâm trong sự phát triển bền vững của mỗi quốc gia đó là ưu tiên hàng đầu cho giáo dục Việc ứng dụng CNTT trong giáo dục thể hiện sự lớn mạnh về khoa học, về công nghệ, về kinh tế của một đất nước Một đất nước muốn phát triển nhanh và bền vững thì nền kinh tế tri thức phải được ưu tiên hàng đầu CNTT đã làm thay đổi căn bản bức tranh của nền kinh tế tri thức đó
Để hội nhập thế giới công nghệ, đáp ứng yêu cầu đào tạo nguồn nhân lực công nghệ cao phục vụ phát triển kinh tế - xã hội, giáo dục thực sự phải đi trước, đón đầu và đổi mới Trước tiên người làm giáo dục từ trung ương đến địa phương cần đổi mới tư duy, sáng tạo, và hiểu được tầm quan trọng của việc ứng dụng CNTT trong giáo dục, và coi việc ứng dụng CNTT trong giáo dục là một trong những nhiệm vụ trọng tâm hàng đầu trong thời đại mới hiện nay
Chiến lược phát triển giáo dục 2001- 2010 của Chính phủ đã nhận định: “Sự đổi mới và phát triển giáo dục đang diễn ra ở quy mô toàn cầu tạo cơ hội tốt để giáo dục Việt Nam nhanh chóng tiếp cận với các xu thế mới, tri thức mới, những cơ sở lý luận, phương thức tổ chức, nội dung giảng dạy hiện đại và tận dụng các kinh nghiệm quốc tế đổi mới và phát triển”
Chỉ thị số 29/2001/CT BGD&ĐT ngày 30 tháng 7 năm 2001 của Bộ GD&ĐT về tăng cường giảng dạy, đào tạo và ứng dụng CNTT trong ngành giáo dục giai đoạn 2001-2005 nêu rõ: “CNTT và đa dạng phương tiện sẽ tạo ra những thay đổi lớn trong hệ thống quản lý giáo dục, trong chuyển tải nội dung chương trình đến người học, thúc đẩy cuộc cách mạng về phương pháp dạy và học”
Trang 13Với yêu cầu phát triển kinh tế như hiện nay và yêu cầu trong sự nghiệp đổi mới, phát triển giáo dục thời đại mới thì việc ứng dụng CNTT là hoàn toàn phù hợp, thể hiện được tư duy sáng tạo trong phong cách quản lý của người làm giáo dục, và thể hiện được sự quan tâm sâu sắc, đầu tư của Đảng và Nhà nước cho sự nghiệp phát triển giáo dục
Toán học là một môn khoa học hết sức quan trọng, nếu không muốn nói là môn khoa học quan trọng bậc nhất Toán học có tầm ảnh hưởng lớn tới sự phát triển của nhiều ngành khoa học khác Đặc biệt trong thời đại số hiện nay toán học lại càng thể hiện được vị thế của mình Trong dạy học, toán học còn giữ một vai trò rất quan trọng, thúc đẩy phát triển tư duy, năng lực sáng tạo, thế giới quan khoa học cho học sinh Thời lượng học tập môn toán thường chiếm vị trí lớn nhất trong tất cả các môn học trên lớp, với một lượng kiến thức khổng lồ, bản thân môn toán lại hết sức trừu tượng, phức tạp, và có tính logic rất cao, yêu cầu học sinh phải nắm vững kiến thức cũ mới có thể tiếp thu được kiến thức mới Chính điều đó làm cho việc học tập môn toán trở nên khó khăn hơn, nhiều học sinh bị mai một mất gốc dần không theo kịp kiến thức trên lớp, các em trở nên sợ học toán Vì vậy vài năm trở lại đây Bộ GD&DT đã đưa ra nhiều phương pháp nhằm tháo gỡ bế tắc này cho các
em như: giảm tải chương trình, tăng hoạt động dạy học trực quan, tích cực xây dựng
mô hình mô phỏng, sử dụng trang thiết bị trong giờ giảng nhằm nâng cao hiệu quả học tập cho học sinh Bộ môn hình học phổ thông nói riêng cũng không nằm ngoài quy luật trên
Kiến thức hình học của học sinh được thể hiện trên cả hai phương diện: kỹ năng vẽ hình và kỹ năng suy diễn hình học Hai phương diện này có quan hệ mật thiết với nhau, vẽ hình đúng và chính xác sẽ trợ giúp cho quá trình tái hiện và suy diễn hình học của học sinh tốt hơn và ngược lại các em có kỹ năng suy diễn hình học tốt phải được thể hiện bằng các hình vẽ mô phỏng đúng, đảm bảo tính logic, có
bố cục chặt chẽ, sáng sủa, dễ hiểu Chính vì vậy trong quá trình học tập cần phải trang bị cho học sinh cả hai phương diện này Để đạt được kết quả như mong muốn,
Trang 14trong quá trình giảng dạy giáo viên cần phải xây dựng được các mô phỏng tốt, trực quan, sinh động, dễ hiểu, làm mô phỏng minh họa cho học sinh Về phía học sinh cần có công cụ trợ giúp hướng dẫn các em tích cực thực hành để biểu đạt, khám phá, kiểm nghiệm lại kiến thức mình đã được học, làm sáng tỏ các vấn đề còn vướng mắc, chưa hiểu, để khắc sâu và nắm bắt kiến thức một cách chủ động, toàn diện
Ngày nay nhờ công nghệ đồ họa máy tính phát triển, xuất hiện rất nhiều các phần mềm hỗ trợ tính toán và vẽ hình học hữu ích phục vụ cho công tác giảng dạy
và học tập hình học, ví dụ một số phần mềm hàng đầu hiện nay như: Cabri3D, Archimest geom, Geometer‟s skecthpad, maple…vv Tuy nhiên, đây là những phần mềm yêu cầu người sử dụng phải có kỹ năng nhất định, mang tính thiết kế cao, đối tượng chủ yếu là dành cho giáo viên, đa số học sinh khó có thể tiếp cận
MATLAB là phần mềm của công ty Mathwork MATLAB có khả năng tính toán mảng và ma trận tuyệt vời, rất phù hợp cho việc xử lí dữ liệu phức tạp trong đó
có dữ liệu hình học Mặt khác, MATLAB chứa thư viện đồ họa 2D và 3D có đầy đủ các công cụ vẽ, cho phép chúng ta vẽ mô phỏng hình học động rất hiệu quả, có thể
sử dụng để xây dựng các mô phỏng cho lý thuyết và bài tập hình học, trợ giúp học sinh học tập và thực hành nhằm nâng cao chất lượng học tập hình học ở nhà trường phổ thông, chính vì vậy mà chúng tôi quyết định lựa chọn đề tài “Xử lí đồ họa trong MATLAB phục vụ cho công cụ toán học ở trường phổ thông” để nghiên cứu
2 Mục đích nghiên cứu
Tìm hướng vận dụng khả năng xử lí đồ họa trong phần mềm MATLAB vào xây dựng mô phỏng cho hình học phổ thông
3 Khách thể và đối tượng nghiên cứu
Khách thể nghiên cứu: Chương trình hình học PT, giáo viên giảng dạy toán học và học sinh trường PT
Đối tượng nghiên cứu: Khả năng xử lí đồ họa trong MATLAB phục vụ cho toán học ở trường phổ thông
Trang 15Phạm vi nghiên cứu: Giới hạn trong nội dung chương trình toán hình học ở trường THPT
4 Giả thiết khoa học
Nếu vận dụng được khả năng xử lí đồ họa trong MATLAB vào việc mô phỏng và giảng dạy một số nội dung môn hình học tại trường PT, sẽ góp phần tích cực trong việc nâng cao hiệu quả giảng dạy và học tập, học sinh sẽ nắm bắt nhanh hơn, phát triển tư duy sáng tạo
5 Nhiệm vụ nghiên cứu
Tôi xin trình bày những nội dung nghiên cứu chính trong luận văn như sau:
Đồ họa máy tính, vai trò của đồ họa máy tính đối với nhận thức
Hình học phổ thông, và vai trò của mô phỏng hình học đối với học sinh PT
Tìm hiểu phần mềm MATLAB, hướng vận dụng phần mềm MATLAB vào xử lí đồ họa mô phỏng nội dung hình học PT
Thực hành MATLAB
6 Ý nghĩa lý luận và thực tiễn của đề tài
Về lý luận: Luận văn làm rõ thêm việc vận dụng phần mềm MATLAB vào
xử lí đồ họa cho toán học phổ thông
Về thực tiễn: Đưa ra phương pháp xử lí cho các đối tượng cơ sở thuộc hình học phổ thông, áp dụng xây dựng kịch bản mô phỏng từ phần mềm MATLAB cho toán học phổ thông
7 Phương pháp nghiên cứu
Nghiên cứu lí luận: Nghiên cứu cơ sở lí luận về hoạt động nhận thức của học sinh trong quá trình học tập môn hình học PT, các văn bản, tài liệu chỉ đạo của Bộ GD&ĐT liên quan đến đổi mới phương pháp dạy học, danh mục thiết bị dạy học toán PT, SGK hình học PT, lý thuyết đồ họa máy tính, ngôn ngữ lập trình và đồ họa MATLAB
Trang 16Thực hành: Áp dụng xây dựng kịch bản mô phỏng sự tương giao giữa đường thẳng và mặt cầu
8 Cấu trúc luận văn
Luận văn được trình bày theo các chương :
1 Chương 1 trình bày cơ sở về đồ họa và vai trò của chúng đối với học sinh
2 Chương 2 trình bày phần mềm MATLAB và phần vận dụng MATLAB xử lí các đối tượng cơ sở thuộc hình học phổ thông
3 Chương 3 Thực hành MATLAB, xây dựng kịch bản mô phỏng sự tương giao giữa đường thẳng và mặt cầu
Cuối luận văn là phần kết luận và danh sách các tài liệu tham khảo, phụ lục chương trình
Trang 17Chương 1 Đồ họa và vai trò của đồ họa đối với học sinh
1.1 Đồ họa máy tính
1.1.1 Giới thiệu đồ họa máy tính
Đồ họa máy tính là một ngành khoa học Tin học chuyên nghiên cứu về các phương pháp và kỹ thuật để có thể mô tả và thao tác trên các đối tượng của thế giới thực bằng máy tính [5]
Về bản chất đó là một quá trình xây dựng và phát triển các công cụ trên cả hai lĩnh vực phần cứng và phần mềm hỗ trợ cho các lập trình viên thiết kế các chương trình có khả năng đồ họa cao
Với việc mô tả dữ liệu thông qua các hình ảnh và màu sắc đa dạng của nó các chương trình đồ họa thường thu hút người dùng bởi tính thân thiện, dễ dùng… kích thích khả năng sáng tạo và nâng cao năng suất làm việc
1.1.2 Vai trò của đồ họa máy tính đối với nhận thức
Sự phát triển của khoa học, kĩ thuật, nghệ thuật, kinh doanh, và công nghệ luôn luôn phụ thuộc vào khả năng truyền đạt thông tin của chúng ta, hoặc thông qua các dữ liệu lưu trữ trong microchip hoặc thông qua giao tiếp bằng tiếng nói Câu châm ngôn từ xa xưa “một hình ảnh có giá trị hơn cả vạn lời” hay “trăm nghe không bằng một thấy” cho thấy ý nghĩa rất lớn của hình ảnh trong việc chuyển tải thông tin Hình ảnh bao giờ cũng được cảm nhận nhanh và dễ dàng hơn, đặc biệt là trong trường hợp bất đồng về ngôn ngữ Do đó không có gì ngạc nhiên khi mà ngay từ khi xuất hiện máy tính, các nhà nghiên cứu đã cố gắng sử dụng nó để phát sinh các ảnh trên màn hình Trong suốt gần 70 năm phát triển của máy tính, khả năng phát sinh hình ảnh bằng máy tính của chúng ta đã đạt tới mức mà bây giờ hầu như tất cả các máy tính đều có khả năng đồ họa
Đồ 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 tin học Ngay từ khi xuất hiện, đồ họa máy tính đã có sức lôi cuốn mãnh
Trang 18liệ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, quản lí, 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ó
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, dưới đây là một số ứng dụng tiêu biểu :
1.1.2.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 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, tàu vũ trụ, 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 sợi, 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
Hình 1 Đồ họa AutoCAD
Trang 191.1.2.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í, nghiên cứu khoa học một cách
có hiệu quả
1.1.2.3 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ư Paint Shop Pro, Adobe Photoshop, 3D Studio, … hỗ trợ rất đắc lực cho các 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
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, cho các nhà làm phim Có nhiều bộ phim rất nổi tiếng nhờ vào kĩ xảo điện ảnh như: Công viên Khủng long kỉ Jura, Titanic, Thế giới nước…
Hình 2 Đồ họa giải trí - nghệ thuật
1.1.2.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
Trang 20rấ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…
Hình 3 Đồ họa trong Giáo dục Đào tạo
1.1.2.5 Giao tiếp 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 MS 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 đó Ví dụ, chức năng lưu tập tin được hiểu thông qua biểu tượng đĩa mềm, chức năng in ấn được hiểu thông qua biểu tượng máy in, … Để 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ữ Các ứng dụng có giao diện đồ họa còn cho phép người dùng khả năng làm việc
dễ dàng với nhiều cửa sổ với nhiều dạng tài liệu khác nhau cùng một lúc
Hình 4 Tương tác đồ hoạ người-máy
Trang 211.2 Đồ họa hình học phổ thông
1.2.1 Các đối tượng đồ họa hình học phổ thông
Chương trình hình học phổ thông được chia thành hai phần là hình học phẳng và hình học không gian
1 Hình học phẳng gồm các đối tượng đồ họa cơ sở như: điểm, đường thẳng, vecto, tia, đa giác, đường tròn, cung tròn, các đường conic… và các hình phức hợp được xây dựng từ hai đối tượng cơ sở trong hình học phẳng trở lên
2 Hình học không gian gồm các đối tượng đồ họa cơ sở như: điểm, đoạn thẳng, đường thẳng, mặt phẳng, vecto, đa giác, đường tròn, cung tròn, mặt cầu, mặt trụ, mặt nón… và các hình phức hợp được xây dựng từ hai đối tượng cơ sở trong không gian trên trở lên
1.2.2 Yêu cầu xây dựng mô phỏng hình học tại nhà trường phổ thông
Kiến thức hình học phổ thông khá trừu tượng, nó được xây dựng từ một hệ thống các tiên đề được công nhận, sau đó được sử dụng chứng minh cho các bổ đề, định lý nhằm phát triển nội dung bộ môn hình học
Với lượng kiến thức hình học tương đối nhiều và phức tạp, để lĩnh hội được thì phần hình vẽ mô phỏng cho các khái niệm, các chứng minh định lý và bài tập chiếm một vị trí hết sức quan trọng, giúp học sinh nắm bắt lý thuyết, biết cách biểu diễn các đối tượng hình học cơ sở trong mặt phẳng và trong không gian, rồi từ đó kết hợp các đối tượng cơ sở để xây dựng các mô phỏng phức tạp hơn theo yêu cầu của bài toán Ngược lại, sau khi học sinh nắm vững được cách biểu diễn các đối tượng hình học thì việc nhớ và tái hiện lại các khái niệm, định lý thông qua hình ảnh
sẽ dễ dàng hơn rất nhiều Vì vậy song song với việc truyền tải lý thuyết hình học, yêu cầu phải trang bị kỹ năng vẽ và xây dựng mô phỏng cho học sinh là hết sức cần thiết
Riêng môn hình học không gian, mỗi hình vẽ trong không gian 3 chiều thường được mô phỏng trên mặt phẳng hai chiều, hình ảnh tĩnh, không thay đổi
Trang 22được các tham số góc, cạnh, màu sắc, điểm quan sát vv Tính tương tác bị hạn chế,
vì vậy yêu cầu học sinh phải có khả năng hình dung, trí tưởng tượng rất cao mới có thể lĩnh hội được Đây là một vấn đề lớn gây trở ngại cho nhiều học sinh
Giải pháp xây dựng các mô hình thực tế bằng vật liệu cũng được khuyến khích, song nó rất tốn chi phí để thực hiện, phải mang vác, cất giữ cồng kềnh, hoặc nhiều mô hình yêu cầu sản xuất rất phức tạp, giáo viên khó có thể thực hiện được
Ví dụ như tạo mô hình mặt phẳng và mặt cầu giao nhau chẳng hạn
Với sự phát triển mạnh mẽ của nền kinh tế và khoa học kĩ thuật hiện nay, việc sở hữu một chiếc máy tính là không quá khó khăn, hơn nữa dưới sự quan tâm của Đảng và Nhà nước, các trường phổ thông đều được trang bị phòng máy, phòng học đa năng, tạo cơ sở hạ tầng CNTT phục vụ cho quá trình học tập và giảng dạy
Vì vậy việc triển khai xây dựng mô phỏng thông qua hệ thống phần mềm máy tính, trợ giúp học sinh trong quá trình học tập hình học là cần thiết và hoàn toàn có thể thực hiện được
1.2.3 Một số vai trò của mô phỏng trong học tập hình học phổ thông
Mô phỏng là công cụ trực quan hóa vô cùng hữu hiệu trong việc giảng dạy hình học, giúp học sinh vận dụng tối đa các giác quan còn lại trong việc học tập, vì thế nó có những vai trò vô cùng quan trọng
1.2.3.1 Truyền tải nội dung kiến thức hình học
Trong quá trình dạy và học hình học phổ thông thì hình vẽ mô phỏng gần như không thể thiếu được trong bất cứ một khái niệm, chứng minh định lý, hệ quả,
và bài tập nào về hình học bởi các lý do sau:
1 Học sinh dễ tiếp thu trong quá trình nhận thức, hỗ trợ việc cung cấp kiến thức, giảm tính trừu tượng của kiến thức
2 Có tác dụng minh họa cho lý thuyết, bài tập Nó hỗ trợ và phát huy mọi giác quan của người học Tăng độ tin cậy và khắc sâu kiến thức
3 Giúp giáo viên tăng năng suất làm việc, giảm thiểu tính chất giảng dạy mang tính thông báo một chiều
Trang 234 Cải tiến phương pháp dạy học của giáo viên và thay đổi hình thức học của học sinh theo hướng chủ động, tích cực
mỹ và giáo dục thẩm mỹ cho thế hệ tương lai
1.2.3.3 Rèn luyện khả năng quan sát
Mô phỏng đồ họa đòi hỏi học sinh phải quan sát để cảm nhận được những gì mình cảm thấy để có thể đưa được vào xây dựng mô phỏng cho bản thân
Quan sát hình vẽ mô phỏng giúp học sinh có ý định bố cục sắp xếp hình ảnh sao cho tỷ lệ giữa các đối tượng được hài hòa cân đối, chính xác, và nhất quán
1.2.3.4 Phát triển tư duy sáng tạo và nhân cách học sinh
Tư duy hình học mang những nét đặc trưng quan trọng và cơ bản của tư duy toán học Việc phát triển tư duy hình học luôn gắn với khả năng phát triển trí tưởng tượng không gian, phát triển tư duy hình học luôn gắn liền với việc phát triển của phương pháp suy luận; việc phát triển tư duy ở cấp độ cao sẽ kéo theo sự phát triển
tư duy đại số Như vậy để nâng dần cấp dộ tư duy trong dạy học hình học, việc dạy học phải được chú ý vào: phát triển trí tưởng tượng không gian bằng cách: giúp học sinh hình thành và tích luỹ các biểu tượng không gian một cách vững chắc, biết nhìn nhận các đối tượng hình học ở các không gian khác nhau, biết đoán nhận sự thay đổi của các biểu tượng không gian khi thay đổi một số dữ kiện
1.2.4 Giải pháp mô phỏng
Xuất phát từ yêu cầu xây dựng mô phỏng trong giảng dạy và học tập hình học phổ thông tôi đề xuất bài toán xây dựng bộ công cụ trợ giúp mô phỏng hình học cho giáo viên và học sinh phổ thông, giúp học sinh có thể thực hành kiểm tra kiến
Trang 24thức môn học, nhằm nâng cao chất lượng học tập hình học Bộ công cụ phải thỏa mãn được các yêu cầu sau :
1 Biểu diễn được các đối tượng đồ họa cơ sở trong không gian 2 và 3 chiều
2 Đảm bảo các đối tượng đồ họa cơ sở có thể kết hợp được với nhau, cho phép xây dựng các mô phỏng phức hợp
3 Có thể biểu diễn thông tin, ký hiệu, chú thích trên mô phỏng
4 Đối tượng biểu đạt đa dạng, cho phép lựa chọn về màu sắc, đường nét, độ rộng
5 Mô phỏng có thể được thay đổi, chỉnh sửa, lưu giữ
6 Mô phỏng động, được quan sát dưới nhiều góc độ khác nhau
7 Có giao diện cho người sử dụng tương tác thực hành
Từ yêu cầu trên ta xác định được nhiệm vụ cần phải thực hiện :
1 Xây dựng bộ công cụ vẽ các đối tượng cơ sở
2 Bộ công cụ biểu diễn văn bản, hiển thị thông tin
3 Bộ công cụ định thuộc tính cho đối tượng
4 Bộ công cụ cho phép cập nhật, chỉnh sửa, lưu trữ
5 Giao diện cho phép người sử dụng tương tác, thực hành
Để thực hiện xây dựng bộ công cụ trợ giúp mô phỏng hình học phổ thông tác giả lựa chọn phần mềm MATLAB, lí do lựa chọn được giới thiệu sau đây
1.3 Nhu cầu xử lí đồ họa MATLAB cho toán học phổ thông
1.3.1 Khả năng xử lí dữ liệu
Tính toán và biểu diễn đồ họa là một trong những lĩnh vực lý thú, tuy nhiên
nó cũng bao hàm nhiều vấn đề không đơn giản Việc tính toán và số hóa nhằm xây dựng các ứng dụng thông thường trên máy tính vốn đã rất khó khăn, và điều đó càng khó khăn hơn với những người muốn xây dựng phát triển các ứng dụng đồ
Trang 25họa, bởi họ phải xử lí dữ liệu đầu vào hết sức phức tạp đa dạng do đặc trưng riêng của đồ họa
Ban đầu MATLAB ra đời với mục đích chủ yếu là mô tả các nghiên cứu kỹ thuật bằng toán học dựa trên những phần tử cơ bản là mảng và ma trận, chính điều
đó tạo điều kiện cho MATLAB có khả năng xây dựng các phép tính toán trên ma trận hết sức tuyệt vời mà bất cứ ngôn ngữ nào cũng không thể sánh kịp Ta có thể
sử dụng kiến thức về ma trận, mảng trong MATLAB để tính toán và biểu diễn cho các đối tượng hình học là rất thuận lợi Bên cạnh đó MATLAB còn chứa rất nhiều các hàm tính toán đại số và hình học sẵn có mà chúng ta không phải mất thời gian phát triển Ví dụ hàm xác định tích vô hướng, tích có hướng của hai vecto, hàm xác định tập các điểm bao lồi, các hàm lượng giác cơ bản và hàm ngược của nó như: dot, cross, convhull, sin, asin, tan, atan vv
1.3.2 Khả năng đồ họa
Trong quá trình phát triển MATLAB không chỉ cho phép đặt vấn đề về tính toán mô phỏng mà còn mở rộng ra nhiều ứng dụng trong đó có ứng dụng đồ họa 2D
và 3D rất mềm dẻo và đầy đủ, gồm nhiều hàm vẽ có tính năng mạnh mẽ, đa dạng,
kể cả khả năng tạo hoạt cảnh cho những mô tả sinh động
1 Tính đầy đủ: MATLAB cung cấp đầy đủ công cụ vẽ đường, điểm, mặt, biểu
đồ, ký hiệu, chú thích…vv
2 Tính mạnh mẽ: các hàm vẽ đường và mặt tổng quát như: plot, plot3, mesh, surf … cho nhiều chức năng vẽ, và là các hàm chính trong thư viện đồ họa 2D&3D của MATLAB
3 Tính mềm dẻo: cho phép vẽ, chỉnh sửa, cập nhật, kết hợp các đồ thị với nhau trên cùng một hình vẽ, kết xuất hình ảnh ra nhiều định dạng file theo nhu cầu cần sử dụng
4 Tính sinh động: cho phép tạo hoạt cảnh, xoay, chuyển động, thay đổi góc nhìn của đối tượng
Trang 26Đối với danh mục các hình vẽ mô phỏng thuộc hình học phổ thông MATLAB có đủ công cụ vẽ và trình bày một cách trực quan Ví dụ như xây dựng
mô phỏng mặt cầu có thể được tạo một cách đa dạng theo màu sắc, kích thước, cấu trúc, góc xoay…vv để tạo sự lôi cuốn, kích thích khả năng trí tưởng tượng, so sánh, đánh giá của học sinh
Hình 5 Một số dạng biểu diễn của mặt cầu trong MATLAB
1.3.3 Khả năng hỗ trợ
MATLAB có một cộng đồng người sử dụng nghiên cứu rộng rãi trên toàn cầu giúp cho việc chia sẻ và trao đổi tài liệu, kiến thức và kinh nghiệm được thuận lợi Ngoài ra những công cụ như các thư viện chuẩn, các hàm sẵn có cho các ứng dụng đa dạng, các tệp lệnh ngày càng được mở rộng và hoàn chỉnh Chính điều đó tạo cho ta nhiều thuận lợi trong quá trình xây dựng các ứng dụng trên nền tảng phần mềm MATLAB
Trang 27Chương 2 Ngôn ngữ lập trình MATLAB
2.1 Tổng quan về ngôn ngữ lập trình MATLAB
MATLAB là một ngôn ngữ lập trình cấp cao dạng thông dịch, nó là môi trường tính toán số được thiết kế bởi công ty MathWorks, MATLAB được viết tắt của cụm từ Matrix Laboratory Nó tích hợp tính toán, hiển thị và lập trình trong một môi trường dễ sử dụng Các ứng dụng tiêu biểu của MATLAB bao gồm :
1 Hỗ trợ toán học và tính toán
2 Phát triển thuật toán
3 Mô hình, mô phỏng
4 Phân tích, khảo sát và hiển thị số liệu
5 Đồ họa khoa học và kỹ thuật
6 Phát triển ứng dụng với các giao diện đồ họa
7 Một số ứng dụng khác
MATLAB là phần mềm có vai trò rất lớn trong tính toán, mô phỏng, thiết kế
kỹ thuật, nghiên cứu khoa học và đào tạo MATLAB là ngôn ngữ phổ dụng trên thế giới nó có một cộng đồng người sử dụng, quan tâm nghiên cứu rất lớn Phiên bản hiện tại của MATLAB tính đến nay 10/2012 là bản R2012b Trong luận văn này tác giả sử dụng phiên bản 7.10 MATLAB R2010a phục vụ cho đề tài nghiên cứu của mình
2.1.1 Không gian làm việc của MATLAB
Trước khi khởi động MATLAB ta phải tạo một thư mục làm việc Thư mục này sẽ chứa các file làm việc của mình Sau khi khởi động MATLAB ta click vào biểu tượng chọn thư mục để chọn thư mục làm việc này Về cơ bản, không gian làm việc của MATLAB gồm có các phần sau :
Cửa sổ trợ giúp (Help window)
Nút Start
Trang 28 Cửa sổ nhập lệnh (Command window)
Cửa sổ không gian làm việc (Workspace window)
Cửa sổ quá trình lệnh (Command History window - lịch sử)
Cửa sổ biên tập mảng, vecto, ma trận (Array editor window)
Cửa sổ địa chỉ thư mục hiện thời (Current directory window)
Hình 6 Không gian làm việc MATLAB
2.1.2 Biến ngôn ngữ MATLAB
MATLAB có những quy định riêng về biến Tên biến trước hết phải là một
từ không chứa đấu cách, tên biến phải tuân thủ những quy tắc sau:
Tên biến có phân biệt kiểu chữ hoa và chữ thường
Tên biến chứa nhiều nhất là 31 ký tự
Tên biến bắt đầu phải là chữ cái, tiếp theo có thể là chữ số hoặc dấu gạch dưới
Ngoài những quy định trên MATLAB còn có những biến đặc biệt trong bảng sau :
Trang 29Bảng 1 Bảng đối số đặc biệt MATLAB
Các biến đặc biệt Giá trị
ans Tên biến mặc định dùng để trả về kết quả
eps Số nhỏ nhất, ví dụ 1 + eps là số nhỏ nhất lớn hơn 1 flops Số của phép toán số thực
Inf Để chỉ số vô cùng giống kết quả 1/0
NaN, nan Dùng để chỉ số không xác định như kết quả 0/0
nargin Số các đối số đưa vào hàm được sử dụng
nargout Số các đối số hàm đưa ra
realmin Số nhỏ nhất có thể được của số thực
realmax Số lớn nhất có thể được của số thực
2.1.3 Kiểu dữ liệu trong MATLAB
MATLAB sử dụng 15 kiểu dữ liệu chính Mỗi một kiểu dữ liệu này đều ở dạng của một ma trận hoặc mảng Các mảng hoặc ma trận này có kích cỡ tối thiểu
là 0x0 và có thể phát triển tới mảng n-chiều với kích cỡ tùy ý
Ngoài ra còn có các kiểu dữ liệu do người dùng định nghĩa (thiết lập), kiểu hướng đối tượng, và kiểu dữ liệu liên quan tới Java
Trang 30Hình 7 Các kiểu dữ liệu MATLAB
2.1.4 Cách tạo M-file
Trong MATLAB, M-file là các file chương trình được soạn thảo và lưu ở dạng văn bản Có hai loại M-file là Script file và Function file Script M-file không phải là một hàm, nó không có các tham số đầu vào cũng như đầu ra, và đơn giản nó chỉ thực hiện một chuỗi các câu lệnh của MATLAB, với các biến được định nghĩa trong không gian làm việc Hàm M-file khác với script M-file ở chỗ nó có một dòng định nghĩa hàm, qua đó liên hệ giữa các tham số đầu vào và đầu ra Cả hai đều có phần tên mở rộng là ".m" Để tạo m-file ta thực hiện một trong ba cách sau :
Trong cửa sổ command gõ lệnh edit
Vào menu File > New > Script (hoặc Function)
Nhắp chuột vào biểu tượng tạo file (New Script)
Sau khi tạo file xong chúng ta chọn biểu tượng Save, hoặc bấm tổ hợp phím Ctrl + S rồi lưu file vào thư mục đã chọn
Ví dụ tạo Script file
% khai báo độ dài các cạnh của tam giác
a = 3; b = 5; c = 7;
% tính chu vi và diện tích tam giác theo công thức hê rông
p = (a + b + c)/2;
s = sqrt(p*(p-a)*(p-b)*(p-c));
Trang 31Ví dụ tạo Function file
là chuỗi số nguyên bắt đầu bằng 1
trong mảng Chẳng hạn mảng 2 chiều sẽ cần 2 chỉ số i và j để đặc trưng cho một phẩn tử của mảng
số
phép cộng, nhân và các tính toán khác Nó đặc trưng cho một sự biến đổi tuyến tính
về toán học Hai chiều của ma trận là hàng và cột (m hàng và n cột)
hàng là một ma trận chỉ có một hàng (kích thước 1xn), còn một vecto cột là một ma trận chỉ có một cột (kích thước mx1)
2.1.6 Các phép toán trên ma trận, vecto
Tạo ma trận bằng các hàm có sẵn trong MATLAB
Zeros(m, n): tạo ma trận cấp mxn với tất cả các phần tử bằng 0
Ones(m, n): tạo ma trận cấp mxn với tất cả các phần tử bằng 1
Eye(n): tạo ma trận đơn vị cấp n
rand(n, m): tạo ma trận cấp mxn với các phần tử ngẫu nhiên thuộc (0, 1)
linspace(a, b, n): tạo một vecto hàng có n phần tử cách đều nhau phần
tử đầu là a, phần tử cuối là b
Trang 32 repmat(A, m, n): tạo ma trận mới cấp (size(A, 1)*m)x(size(A, 2)*n) bằng cách copy ma trận A theo một chiều hoặc hai chiều đã định Các phép toán thường gặp
A': ma trận chuyển vị của ma trận A
size(A, 1): trả về số hàng của ma trận A
size(A, 2): trả về số cột của ma trận A
length(A): kích thước lớn nhất của A
unique(A): lấy danh sách các phần tử không trùng nhau từ tập A
convhull(x, y): trả về chỉ số các điểm bao lồi từ hai vecto x, y
sum(A): tính tổng các phần tử trên từng cột của ma trận A
diag(A): lấy các phần tử đường chéo của ma trận A
det(A): tính định thức của ma trận A
rank(A): tính hạng của ma trận A
inv(A): tìm ma trận nghịch đảo của ma trận A
A(n, m) ± B(n, m) = C(n, m): cộng và trừ hai ma trận tương ứng
A(n, m) * B(m, k) = C(n, k): nhân hai ma trận
A(i, j): truy xuất phần tử mảng aij của ma trận A
A(i:j, k): truy xuất các phần tử từ i đến j theo cột thứ k của ma trận A
A(k, i:j): truy xuất các phần tử từ i đến j theo hàng k của ma trận A
Trang 33liên quan tới các hàm cho ta giá trị logic
Trang 342.1.10.2 Vòng lặp while
Vòng While được sử dụng khi bạn muốn thực hiện lặp đi lặp lại một đoạn
mã lệnh của MATLAB cho tới khi một điều kiện (logic) nào đó được thỏa mãn, nhưng ta không thể nói trước nó sẽ cần lặp bao nhiêu lần Khi đó ta có thể sử dụng vòng lặp này
while biểu thức logic câu lệnh
end
2.2 Một số khía cạnh liên quan đến đồ họa
Liên quan đến những chức năng xử lí đồ họa của MATLAB, người ta thấy có những khía cạnh sau :
2.3 Chuẩn hóa tham số cho các đối tượng cơ sở
Mục đích của việc chuẩn hóa tham số là để thống nhất tham số xử lí cho đối tượng cơ sở Ví dụ như trong hình học phẳng một đường thẳng thường được xác định theo 3 cách sau :
Hình 8 Đường thẳng trong mặt phẳng
Trang 351 TH1: Đường thẳng đi qua 2 điểm phân biệt M0(x0;y0), M1(x1;y1)
2 TH2: Đường thẳng đi qua điểm M0(x0; y0), và có vecto pháp tuyến ( ; )n A B
2.4 Xử lí các đối tượng đồ họa cơ sở thuộc hình học phẳng
2.4.1 Điểm trong mặt phẳng
Để vẽ điểm trong mặt phẳng ta dùng hàm plot, hàm plot cho phép vẽ đơn điểm hoặc đa điểm phụ thuộc ma trận tọa độ đầu vào Ngoài ra ta có thể định màu sắc, kiểu, độ rộng của điểm thông qua bảng thuộc tính (bảng 4 phần phụ lục)
% Vẽ đơn điểm M(x, y) :
plot(x, y, PropertyName1, PropertyValue1, …);
% Vẽ đa điểm M1(x1, y1), … , Mn(xn, yn) :
plot(x1, y1, x2, y2, … , xn, yn, PropertyName1, PropertyValue1, …);
2.4.2 Tạo nhãn điểm, chú thích
Để thuận tiện cho việc xác định vị trí và thứ tự của điểm, chúng ta thường gán cho mỗi điểm một kí tự in hoa duy nhất gọi là nhãn điểm Nhãn điểm có vai trò quan trọng trong việc xây dựng, phát triển lý thuyết và chứng minh các bài toán hình học Trong MATLAB ta có thể tạo nhãn cho một điểm hoặc danh sách các điểm bằng cách sử dụng hàm text
Gán nhãn cho điểm M(x, y)
Trang 36Gán nhãn cho dãy n điểm M1(x1, y1), M2(x2, y2), … , Mn(xn, yn)
% vẽ dãy điểm
plot(x1, y1, x2, y2, … , xn, yn);
% tạo ma trận tọa độ điểm và nhãn điểm
x = [x1; x2; … xn];
y = [y1; y2; … yn];
labels = [„M1‟;‟M2‟; … ;‟Mn‟];
% gán nhãn cho danh sách điểm
text(X, Y, labels, PropertyName1, PropertyValue1, …);
2.4.3 Đoạn thẳng trong mặt phẳng
Để vẽ đoạn thẳng 2D trong MATLAB ta sử dụng hàm plot Hàm plot cho phép vẽ một đoạn thẳng hay nhiều đoạn thẳng liên tiếp tạo thành một đường gấp khúc tùy thuộc ma trận tọa độ đầu vào
% Vẽ đoạn thẳng AB: A(xa, ya), B(xb, yb)
plot([xa xb], [ya yb], PropertyName1, PropertyValue1, …);
% Vẽ đường gấp khúc A1A2, A2A3, …, An-1An : A1(x1, y1), , An(xn, yn)
plot([x1 x2 …xn], [y1 y2 …yn], PropertyName1, PropertyName1, …);
2.4.4 Vecto trong mặt phẳng
Theo định nghĩa một vecto được xác định nếu ta biết hai điểm đầu mút (điểm
đầu và điểm cuối) của vecto Giả sử trong hệ trục tọa độ (Oxy) cho vecto AB có tọa
độ điểm đầu A(xa; ya), điểm cuối B(xb; yb) Để vẽ vecto AB
ta phải vẽ đoạn thẳng
AB và đầu mũi vecto tại điểm B Việc vẽ đoạn thẳng AB áp dụng phần vẽ đoạn thẳng đã được nêu ở trên, còn phần đầu mũi vecto được biểu diễn bằng một tam giác cân, muốn làm được điều này ta chọn hai điểm U, V sao cho UBV tạo thành một tam giác cân tại đỉnh B và các cạnh của tam giác có tỉ lệ phù hợp với độ dài của vecto AB
, sau đó ta thực hiện vẽ đường gấp khúc UBV
Hình 9 Xử lí vecto 2D Gọi I là trung điểm của U, V Giả sử U, V, I có tọa độ tương ứng là U(xu, yu), V(xv, yv) , I(xI, yI) Gọi , là các tham số dương xác định tỷ lệ của đầu vecto UBV theo hệ thức : IB
Trang 37Giải pháp trong MATLAB
function varargout = Vecto2d(vecto, varargin)
% Chú giải
% Vecto2d là hàm vẽ vecto trong mặt phẳng
% vecto = [xa ya xb yb] vecto AB với A(xa;ya), B(xb;yb)
Trang 38Bước 1: lấy giới hạn của vùng xén
Giải pháp trong Matlab
function varargout = Line2d(line, varargin)
% Chú giải
% Line2d hàm vẽ đường thẳng trong mặt phẳng
% line = [x0 y0 dx dy] đường thẳng qua M0(x0;y0)
% có vecto chỉ phương u = (dx;dy)
% Line2d([x0 y0 dx dy]);
% Line2d([x0 y0 dx dy], PropertyName1, PropertyValue1, …);
Trang 39% mặc định kiểu màu cho đường thẳng
varargin = [{'color', 'b'}, varargin];
% rút trích giới hạn vùng xén hiện thời
xlim = get(gca, 'xlim');
ylim = get(gca, 'ylim');
% xén đường thẳng theo vùng xén hiện thời
clip = clipingLine2d(line, [xlim ylim]);
ok = isfinite(clip(:,1));
% tạo mảng lưu kết quả
h = -1*ones(size(line, 1), 1);
% vẽ đoạn thẳng hợp lệ
h(ok) = plot(clip(ok, [1 3])', clip(ok, [2 4])', varargin{:});
% trả về kết quả cho đầu ra
if nargout > 0
varargout{1} = h;
end
2.4.6 Đa giác trong mặt phẳng
Đa giác là một đường gấp khúc kín có đỉnh đầu và đỉnh cuối trùng nhau Trong toán học phổ thông các đa giác thường gặp là tam giác, tứ giác, ngũ giác…
% Nhập ma trận tọa độ đỉnh của đa giác
X = [x1; x2; x3; … ; xn; x1];
Y = [y1; y2; y3; … ; yn; y1];
% Gọi hàm plot để vẽ các cạnh của đa giác
plot(X, Y, PropertyName1, PropertyValue1, …); % hoặc fill(X,Y,Color);
Trang 402.4.7 Đường tròn trong mặt phẳng
Trong hệ trục tọa độ Descartes (Oxy) cho đường tròn (C) tâm I(xc, yc), bán kính r Trong hệ tọa độ cực phương trình đường tròn (C) được biểu diễn dưới dạng tham số như sau :
cossin
Hình 11 Phân hoạch đường tròn
Phân hoạch đoạn [0;2 ] thành n phần bằng nhau theo tham số
Vẽ đa giác mô phỏng đường tròn A0A1 An
Giải pháp trong Matlab
function varargout = Circle2d(circle, varargin)