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ử
Trang 1MỤC LỤC
MỞ ĐẦU 1
CHƯƠNG I GIỚI THIỆU VỀ ĐỒ HOẠ MÁY TÍNH 3
1.1 Khái niệm về đồ họa máy tính 3
1.2 Tổng quan về một hệ đồ họa 4
1.2.1 Phần cứng 4
1.2.2 Phần mềm 5
1.3 Các đối tượng của đồ họa cơ sở 5
1.3.1 Hệ tọa độ thế giới thực và hệ tọa độ thiết bị 5
1.3.2 Điểm và đoạn thẳng 5
1.4 Các giải thuật xây dựng thực thể cơ sở 7
1.4.1 Giải thuật vẽ đoạn thẳng thông thường 7
1.4.2 Thuật toán DDA (Digital Diffierential Analizer) 8
1.4.3 Giải thuật Bresenham 9
1.4.4 Giải thuật trung điểm – Midpoint 12
1.4.5 Giải thuật sinh đường tròn (Scan Converting Circles)(Bresenham) 15
1.4.6 Giải thuật sinh đường tròn MidPoint 17
1.4.8 Giải thuật sinh ký tự 22
1.4.9 Giải thuật sinh đa giác (Polygon) 25
1.5 Một số ứng dụng của đồ họa máy tính 31
1.5.1 Hỗ trợ thiết kế 31
1.5.2 Biểu diễn thông tin 31
1.5.3 Lĩnh vực giải trí, nghệ thuật 32
1.5.4 Giáo dục và đào tạo 32
1.5.5 Giao tiếp giữa máy tính và người dùng 32
CHƯƠNG II ỨNG DỤNG ĐỒ HỌA MÁY TÍNH TRONG DẠY HỌC TOÁN 33
2.1 Ứng dụng Công nghệ thông tin - Truyền thông trong dạy học toán 33
2.2 Một số vai trò của đồ họa máy tính trong dạy học toán 35
2.2.1 Truyền tải nội dung kiến thức toán học 35
Trang 22.2.2 Rèn luyện kỹ năng, củng cố, ôn tập kiến thức cũ 35
2.2.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 36
2.2.4 Hình thành phẩm chất, đạo đức, tác phong cho học sinh 36
2.3 Nhu cầu xử lý đồ họa MATLAB cho toán học 37
2.3.1 Tổng quan về MATLAB 37
2.3.2 Đồ họa với Matlab 40
CHƯƠNG III XÂY DỰNG CHƯƠNG TRÌNH KHẢO SÁT VÀ VẼ ĐỒ THỊ HÀM SỐ TRONG MATLAB 61
3.1 Bài toán khảo sát hàm số 61
3.1.1 Quy trình khảo sát và vẽ đồ thị hàm số 61
3.1.2 Khảo sát và vẽ đồ thị của hàm số bậc ba 62
3.1.3 Hàm trùng phương 63
3.1.4 Hàm hữu tỷ 65
3.2 Ứng dụng của Matlab vào các bài toán khảo sát hàm số trong dạy học toán 66 3.2.1 Một số giao diện chương trình 66
3.2.2 Một số Modul chính 71
KẾT LUẬN 81
TÀI LIỆU THAM KHẢO 82
Trang 3MỞ ĐẦU
Ngày nay, Công nghệ thông tin là một phần tất yếu trong cuộc sống con người Cùng với sự phát triển của xã hội và thời đại, Công nghệ thông tin đã có ứng dụng và ảnh hưởng sâu sắc đến nhiều lĩnh vực đời sống Nó phục vụ con người từ việc giải trí, kinh doanh, liên lạc cho đến những vấn đề phức tạp trong khoa học kỹ thuật Càng ngày, thế giới càng cần ít thời gian cho sự gia tăng tốc độ phát triển khoa học kỹ thuật Như vậy, với khả năng thu thập xử lý thông tin gần như vô hạn của máy tính điện tử hiện nay, có một câu hỏi đặt ra là: Con người phải làm gì với một khối tri thức khổng lồ và ngày càng tăng nhanh tới mức không thể tưởng tượng nổi với hình thức cung cấp vô cùng dễ dàng? Liệu con người có thể thích nghi được với thế giới thông tin bao quanh, và nếu được thì nhờ những công cụ và phương tiện nào?
Để trả lời cho câu hỏi này, không gì khác chúng ta thấy rõ ràng cần phải có một cuộc cách mạng trong giáo dục và đào tạo Phát triển đồng bộ các cơ quan và
tổ chức trường học cùng với các chương trình và trước hết là phương pháp đào tạo Bởi vì chức năng của nhà trường bao giờ cũng là chuẩn bị con người cho việc đáp ứng những thay đổi của văn minh nhân loại
Trong bối cảnh phát triển như hiện nay, nếu muốn nói giáo dục đáp ứng được đòi hỏi cấp thiết của công cuộc công nghiệp hóa, hiện đại hóa đất nước, nếu muốn việc dạy học theo kịp cuộc sống, 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
“Ứng dụng các kỹ thuật của Đồ họa máy tính vào việc giảng dạy” Đề 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
Trang 4Đồ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 THPT
Luận văn gồm 3 chương với các nội dung sau:
Chương I: Giới thiệu tổng quan về đồ họa máy tính, giới thiệu về các đối tượng và các thuật toán xây dựng các đối tượng cơ sở
Chương II: Trình bày về các ứng dụng của đồ họa máy tính trong dạy học toán Giới thiệu phần mềm Matlab hỗ trợ cho dạy học toán THPT
Chương III: Xây dựng chương trình mô phỏng khảo sát và vẽ đồ thị hàm số bằng phần mềm Matlab
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 hoàn thiện hơn nữa
Trang 5CHƯƠNG I GIỚI THIỆU VỀ ĐỒ HOẠ MÁY TÍNH
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 bit 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 như “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 50 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 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 Khái niệm về đồ họa máy tính
Đồ 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
Trang 6Đồ họa máy tính cung cấp một trong những phương cách tự nhiên nhất cho việc truyền đạt thông tin với máy tính 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
Đồ họa máy tính tương tác là một trong những phương tiện mang lại thêm nhiều sự thuận lợi cho người dùng trong việc phát sinh hình ảnh kể từ khi có phát minh của máy ảnh và truyền hình Với máy tính, chúng ta có thể tạo các hình ảnh không chỉ của các đối tượng cụ thể, thực tế, mà còn của các đối tượng trừu tượng, nhân tạo; các biểu diễn của dữ liệu mà không có tính kế thừa về mặt hình học, như
là kết quả điều tra, khảo sát Hơn nữa, với đồ họa máy tính chúng ta không bị giới hạn trong các ảnh tĩnh Các ảnh động thông thường mang lại nhiều hiệu quả hơn so với ảnh tĩnh, đặc biệt là với các hiện tượng biến đổi theo thời gian, cả thực tế và trừu tượng
1.2 Tổng quan về một hệ đồ họa
Một hệ đồ họa bao giờ cũng có hai thành phần chính đó là phần cứng và phần mềm Phần cứng bao gồm các thiết bị hiển thị và nhập dữ liệu, … Phần mềm bao gồm các công cụ lập trình và các trình ứng dụng đồ họa Chúng ta sẽ lần lượt khảo sát các thành phần này
1.2.1 Phần cứng
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, …
Trang 71.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 thư viện đồ 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, …
1.3 Các đối tượng của đồ họa cơ sở
1.3.1 Hệ tọa độ thế giới thực và hệ tọa độ thiết bị
1.3.1.1 Hệ tọa độ thế giới thực (WCS: World Coordinate Sysem)
WCS hay hệ tọa độ thực là hệ tọa độ được dùng mô tả các đối tượng trong thế giới thực Một trong hệ tọa độ thực được dùng nhiều nhất 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 độ
1.3.1.2 Hệ tọa độ thiết bị (DCS: Device Coordinate System)
Hệ toạ độ thiết bị là hệ toạ độ được dùng bởi một thiết bị xuất cụ thể nào đó như máy in, màn hình
Các điểm được biểu diễn bởi cặp toạ độ (x, y), nhưng 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 do tính chất của tập các số tự nhiên
Các toạ độ (x, y) có giới hạn trong một khoảng nào đó
1.3.2 Điểm và đoạn thẳng
1.3.2.1 Điểm
Trong hệ toạ độ hai chiều (x, y), ngoài ra nó còn có tính chất màu sắc
Trang 81.3.2.2 Đ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 (x 1 ,y 1 ) và Q(x 2 ,y 2 ) như sau:
Trang 91.4 Các giải thuật xây dựng thực thể cơ sở
1.4.1 Giải thuật vẽ đoạn thẳng thông thường
Nguyên lý chung: cho một thành phần toạ độ x hay y biến đổi theo từng đơn
vị và tính độ nguyên còn lại sao cho gần với toạ độ thực nhất
Ta có
Cho x thay đổi tìm y, trong bài này cho x 1 thay đổi tiến tới x 2 ta chọn đơn vị
nhỏ nhất của màn hình Δx=1
Giải thuật thông thường:
void dline(int x1,int y1, int x2,int y2, int color)
{
float y;
int x;
for (x=x1; x<=x2; x++)
Trang 101.4.2 Thuật toán DDA (Digital Diffierential Analizer)
Tiến hành tính tại mỗi bước vốn sử dụng kết quả từ bước trước đó Giả sử
bước i đã tính (x i ,y i ), bước tiếp (x i+1 ,y i+1 ) sẽ nghiệm đúng với Δy/Δx=k
Δy = y i+1 -y i ; Δx = x i+1 -x i
Vậy:y i+1 =y i +kΔx và x i+1 =x i + Δy/k
- 0 < k < 1 (đảm bảo sự thay đổi của x trên trục toạ độ sẽ lớn hơn y)
- Bắt đầu x=x 1 (x 1 <x 2 ) và y=y 1
x i+1 = x i + 1 đặt Δx=1 (gia số theo x)
y i+1 = y i + k cứ như thế đến x 2
- Khi k>1 bắt đầu y=y 1 (y 1 <y 2 ) và x=x 1
- đặt Δy =1 (gia số theo y)
x i+1 =x i + 1/k tiếp tục đến y 2
/* Thuat toan DDA ve doan thang */
void ddaline (int x1,int y1,int x2,int y2,int c)
{ int x=x1;
float y=y1;
Trang 11Chú ý: y=y+k nhanh hơn hẳn y=k*x+m (khử được phép nhân với số thực)
1.4.3 Giải thuật Bresenham
1960 Bresenham thuộc IBM theo nguyên lý tìm ra các điểm gần với đường thẳng dựa trên độ phân giải hữu hạn Giải thuật này loại bỏ được các phép toán chia
và phép toán làm tròn như ta đã thấy trong giải thuật DDA
Xét đoạn thẳng với 0 < k < 1
Hình 1.2 Mô tả thuật toán Bresenham
Trang 12Gọi (x i+1 , y) là điểm thuộc đoạn thẳng, ta có y=k(x i +1)+b
P i+1 = 2Δyx i+1 +2Δy -2Δxy i+1 + 2bΔx -Δx
P i+1 - P i = -2Δx(y i+1 -y i ) + 2Δy(x i+1 -x i )
Trang 13P 1 = Δx(d 1 - d 2 )
= Δx(2Δy/Δx(x 1 +1)- 2y 1 +2b-1)
= 2Δyx 1 +2Δy -2Δxy 1 + 2bΔx -Δx
Có y 1 =kx 1 + b = Δy/Δx x 1 +b
P 1 = 2Δyx 1 +2Δy -2Δx((Δy/Δx)x 1 +b) + 2bΔx -Δx
= 2Δyx 1 +2Δy -2Δyx 1 - 2bΔx + 2bΔx -Δx
P 1 = 2Δy - Δx
/*Thuat toan Bresenham ve duong thang (0<k<1) */
void Bre_line(int x1, int y1, int x2, int y2, int c) {int x, y, dx, dy,p,const1,const2;
Trang 14else {
p +=const2; //p=p+2dy-2dx y++;
}
}
}
1.4.4 Giải thuật trung điểm – Midpoint
Jack Bresenham 1965 / Pitteway 1967, áp dụng cho việc sinh các đường thẳng và đường tròn 1985
Xét trung điểm của đoạn AB (M)
Nếu M ở trên đoạn thẳng AB thì chọn B còn M ở dưới đoạn thẳng AB chọn A Công thức đơn giản hơn, tạo được các điểm tương tự như với Bresenham
d = f(x i + 1, y i + 1/2) là trung điểm của đoạn AB
Hình 1.3 Mô tả thuật toán MidPoint
Trang 15So sánh hay kiểm tra M sẽ được thay bằng việc xét giá trị d
- d > 0 điểm B được chọn khi đó y i+1 = y i
- nếu d < 0 điểm A được chọn khi đó y i +1 = y i + 1
Trường hợp d = 0 chúng ta có thể chọn điểm bất kỳ hoặc A, hoặc B
Sử dụng phương pháp biểu diễn không tường minh
Có f(x,y)=0 với mọi (x,y) thuộc đường thẳng
Đặt d i =f(x i +1,y i +1/2) = a(x i +1) +b(y i +1/2) +c
+ Nếu chọn A (d<0) thì M sẽ tăng theo 2 hướng x, y
d i+1 =f(x i +2,y i +3/2) = a(x i +2) +b(y i +3/2) +c
d i+1 – d i = a+b
Hay d i+1 = d i + dy - dx
+ Nếu chọn B (d>0) thì M sẽ tăng theo x
d i+1 =f(x i +2,y i +1/2) = a(x i +2) +b(y i +1/2) +c
d i+1 - d i = a
Trang 16/* Thuat toan Midpoint de ve doan thang (0<k<1) */
void Mid_line(int x1, int y1, int x2, int y2, int c)
Trang 17y ++;
d = d + dy - dx;
}}
}
1.4.5 Giải thuật sinh đường tròn (Scan Converting Circles)(Bresenham)
- Phương trình đường tròn đi qua tâm có toạ độ (x c ,y c) là:
Trang 18p i = d 1 - d 2 = 2(x i +1 ) 2 + y i 2 + (y i - 1) 2 -2r 2
Xét: p i <0 (d 1 <d 2 ) chọn điểm nằm ngoài đường tròn y i+1 = y i
p i >=0 (d 1 >=d 2 ) chọn điểm nằm trong đường tròn y i+1 = y i +1
p i = 2(x i +1 ) 2 + 2y i 2 - 2y i +1 - 2r 2
p i+1 = 2(x i +2 ) 2 + 2y i+1 2 - 2y i+1 + 1 - 2r 2
p i+1 = p i + 4x i +6 + 2y i+1 2 - 2y i 2 - 2y i+1 + 2y i
p i+1 = p i + 4x i +6 + 2(y i+1 2 - y i 2 )- 2(y i+1 - y i )
+ Nếu p i <0 hay y i+1 = y i
p i+1 = p i + 4x i +6 + Nếu p i >=0 hay y i+1 = y i -1
/* Thuat toan sinh duong tron */
void Bre_circle(int xc, int yc, int Radius, int color)
{
int x, y, p;
x = 0;
y = Radius;
Trang 19p += 4 * (x-y) + 10;
y ;
} x++;}
}
1.4.6 Giải thuật sinh đường tròn MidPoint
Phương trình đường tròn không tường minh:
f(x,y) = x 2 +y 2 -R 2 =0
Nếu f(x,y) = 0 thì nằm trên đường tròn
f(x,y) > 0 thì nằm bên ngoài đường tròn f(x,y) < 0 thì nằm bên trong đường tròn
Thực hiện giải thuật trên 1/8 đường tròn và lấy đối xứng cho các góc còn lại Với M là điểm giữa của AB
Trang 20Với d i là giá trị của đường tròn tại một điểm bất kỳ
/* Thuat toan sinh duong tron */
void Mid_circle(int xc, int yc, int Radius, int color)
Trang 21d += 2 * (x-y) + 5;
y ;
} x++;
}
}
1.4.7 Giải thuật sinh đường ellipse
Tính đối xứng được thực hiện trên 4 cách
fF(x, y) = b 2 x 2 + a 2 y 2 – a 2 b 2 =0
Hình 1.5 Mô tả giải thuật sinh đường ellipse
Trang 22Vector ⊥ với tiếp tuyến gradient =1
Ta có tiếp tuyến với cung tròn (độ dốc) = -1= dy/dx = - fx/fy
Trong đó fx=2b 2 x đạo hàm riêng phần của f(x,y) với x
Và fy=2a 2 y đạo hàm riêng phần của f(x,y) với y
Giả sử ta chỉ xét trên góc phần tƣ thứ nhất: giả sử ta chia cung từ (0,b) đến (a,0) tại Q, có độ dốc -1
Trên phần 1: x thay đổi thì y thay đổi theo
Trên phần 2: y thay đổi thì x thay đổi theo
P i+1 = f(x i+1 +1,y i+1 -1/2) = b 2 (x i+1 +1) 2 + a 2 (y i+1 -1/2) 2 -a 2 b 2
P i+1 - P i = b 2 ((x i+1 +1) 2 - (x i +1) 2 )+ a 2 ((y i+1 -1/2) 2 - (y i -1/2) 2 )
P i+1 = P i + 2b 2 x i+1 + b 2 + a 2 ((y i+1 -1/2) 2 - (y i -1/2) 2 )
- Nếu P i <0 chọn A
x i+1 =x i +1
y i+1 =y i
P i+1 = P i + 2b 2 x i (x i +1) +b 2 = P i + 2b 2 x i +3b 2
Trang 241.4.8 Giải thuật sinh ký tự
Trong màn hình text, truy xuất các ký tự trên màn hình được hỗ trợ bởi phần cứng Các ký tự được lưu trữ trong bộ nhớ ROM, dưới dạng bitmap hay các ma trận ảnh Phần cứng sẽ đưa ký tự lên màn hình tại ví trí xác định, tính toán cuốn trang và xuống dòng
Trong đồ hoạ:
Trang 25+ Vector: định nghĩa các ký tự theo những đường cong mềm bao ngoài của chúng, tốn kém về mặt tính toán
- phức tạp (tính toán phương trình)
- lưu trữ gọn nhẹ
- các phép biến đổi dựa vào công thức biến đổi
- Kích thước phụ thuộc vào môi trường (không có kích thước)
Trang 26xo, yo//điểm gốc trên bộ đệm hiển thị
for (i=ymin;i< ymax ;i++)
for (j=xmin; j< xmax ; j++)
Cấu trúc của font chữ
int CharSpace; // Khoảng cách giữa các ký tự
Charlocation Table [128]; //bảng chữ cái
} fontcache
+ Ký tự vector
Trang 27Xây dựng theo phương pháp định nghĩa các ký tự bởi đường cong mềm bao ngoài của chúng dễ dàng thay đổi kích thước của kí tự cũng như nội suy ra các dạng của kí tự Hoàn toàn độc lập với thiết bị
+ Tối ưu nhất: lưu trữ font dưới dạng đường bao Khi các chương trình ứng dụng sử dụng là bitmap tương ứng với chúng
1.4.9 Giải thuật sinh đa giác (Polygon)
1.4.9.1 Thuật giải vẽ đường bao đa giác
Việc biểu diễn đa giác thông qua:
- Tập các đoạn thẳng
- Tập các điểm thuộc đa giác
Các loại đa giác:
Hình 1.8 Các loại đa giác
Đa giác lồi: là đa giác có đường thẳng nối bất ký 2 điểm bên trong nào của
đa giác đều nằm trọn trong đa giác Đa giác không lồi là đa giác lõm
Các đường thẳng bao đa giác - cạnh của đa giác Các điểm giao của cạnh - đỉnh của đa giác
Thông tin cần thiết để xác định đa giác:
- Số cạnh
- Toạ độ các đỉnh của đa giác
Trang 28/* Thuat toan ve duong bao da giac */
Polygon (arrayx, arrayy,n)
{ if (n<3//không phải đa giác
exit;
for (i=1 ; i<= n-1; i++)
line(arrayx[i],arrayy[i], arrayx[i+1], arrayy[i+1]);
line(arrayx[i+1],arrayy[i+1], arrayx[1], arrayy[1]);
}
1.4.9.2 Các thuật toán tô miền kín đa giác
Lợi thế của hiển thị raster là: khả năng lưu trữ, copy, tô màu một vùng Có hai dạng vùng tô thường gặp đó là: tô bằng một màu thuần nhất (solid fill), tô theo mẫu tô (fill pattern) nào đó
Còn thiết bị vector thì hạn chế do các vùng tô màu tạo ra bởi một tập các đoạn thẳng sát nhau làm chậm quá trình làm tươi
+ Giải thuật đường biên (Boundary - fill Algorithm)
- Bắt đầu từ 1 điểm (x,y) trong vùng cần được tô màu:
+ Xác định màu điểm: getpixel(x,y,c)
+ Tô màu putpixel(x,y,c)
- Bước tiếp: kiểm tra thuộc tính màu các điểm lân cận
+ điểm lân cận đã tô màu (exit)
+ trùng với màu đường biên(exit)
+ Nếu không thì tô màu
Trang 29Các phương pháp xác định điểm lân cận
Hình 1.9 Phương pháp tịnh tiến giải thuật
+Giải thuật dòng quét (scanline) cho việc tô màu vùng
Giải thuật dựa trên ý tưởng sử dụng một đường quét trên trục y của màn hình
đi từ y max đến y min của vùng cần được tô màu
Với mỗi giá trị y = y i đường thẳng quét cắt các đường biên của vùng cần tô
tạo ra đoạn thẳng y = y i với x ∈[x min , x max ] Trên đoạn thẳng đó chúng ta tô màu các điểm tương ứng đi từ x min đến x max có các điểm tô (x i , y i ) ∈y = y i
- Đơn giản nhất ví dụ tô màu hình chữ nhật:
void scanline_rectg(x1,y1,x2,y2,c){ int i,j;
for(i=y1; i>=y2; i )
Giả sử vùng tô được cho bởi 1 đa giác n đỉnh: p i (x i ,y i ), i=0,1, ,n-1 Đa giác
này có thể là đa giác lồi, đa giác lõm hay đa giác tự cắt
Các bước tóm tắt chính của thuật toán:
Trang 30- Tìm y top , y bottom lần lượt là giá trị lớn nhất, nhỏ nhất của tập các tung độ của các
đỉnh của đa giác đã cho
y top = max{y i ,(x i ,y i ) ∈P},
y bottom = min{y i ,(x i ,y i ) ∈P}
- Ứng với mỗi dòng quét y=k, với k thay đổi từ y bottom đến y top lặp:
+ Tìm tất cả các hoành độ giao điểm của dòng quét y=k với các cạnh của đa
giác
+ Sắp xếp các hoành độ giao điểm theo thứ tự tăng dần: x 0 , x 1 ,
+ Tô màu các đoạn thẳng trên đường thẳng y=k lần lượt được giới hạn bởi các cặp (x 0 , x 1 ), (x 2 , x 3 ), , (x 2k , x 2k+1 )
Chúng ta sẽ gặp 1 số vấn đề sau:
- Ứng với mỗi dòng quét không phải lúc nào tất cả các cạnh của đa giác cũng tham gia cắt dòng quét Do đó để cải thiện tốc độ cần phải có một cách nào đó để hạn chế được số cạnh cần tìm giao điểm ứng với mỗi dòng quét
- Nếu số giao điểm tìm được giữa các cạnh đa giác và dòng quét là lẻ (điều này chỉ xảy ra
khi dòng quét sẽ đi qua các đỉnh của đa giác) khi đó ta sẽ tính số điểm là 2 thì có thể
tô không chính xác Ngoài ra, việc tìm giao điểm của dòng quét với các cạnh nằm ngang là trường hợp đặc biệt
Trang 31
Hình 1.10 Giải thuật scanline cho một đa giác bất kỳ
Để giải quyết các vấn đề trên ta có các phương pháp sau:
+ Danh sách các cạnh kích hoạt (AET - Active Edge Table)
Mỗi cạnh của đa giác được xây dựng từ 2 đỉnh kề nhau Pi(xi,yi) và
Pi+1(xi+1,yi+1) gồm các thông tin sau:
y min: giá trị nhỏ nhất trong 2 đỉnh của cạnh
x Intersect: hoành độ giao điểm của cạnh với dòng quét hiện đang xét
DxPerScan: giá trị 1/m (m là hệ số góc của cạnh)
DeltaY: khoảng cách từ dòng quét hiện hành tới đỉnh ymax
Danh sách các cạnh kích hoạt AET: danh sách này dùng để lưu các tập cạnh của đa giác có thể cắt ứng với dòng quét hiện hành và tập các điểm giao tương ứng
Nó có một số đặc điểm:
Các cạnh trong danh sách được sắp xếp theo thứ tự tăng dần của các hoành
độ giao điểm để có thể tô màu các đoạn giao một cách dễ dàng
Trang 32Thay đổi ứng với mỗi dòng quét đang xét, do đó danh sách này sẽ được cập nhật liên tục trong quá trình thực hiện thuật toán Đầu tiên ta có danh dách chứa toàn bộ các cạnh của đa giác gọi là ET (Edge Table) được sắp xếp theo thứ tự tăng
dần của y min, rồi sau mỗi lần dòng quét thay đổi sẽ di chuyển các cạnh trong ET thoả điều kiện sang AET
Một dòng quét y=k chỉ cắt 1 cạnh của đa giác khi và chỉ khi k>=y min và Δy>0
Chính vì vậy mà với các tổ chức của ET (sắp theo thứ tự tăng dần của ymin) điều
kiện để chuyển các cạnh từ ET sang AET sẽ là k>=y min; và điều kiện để loại một
cạnh ra khỏi AET là Δy<=0
+ Công thức tìm giao điểm nhanh:
Nếu gọi x k ,x k+1 lần lượt là các hoành độ giao điểm của một cạnh nào đó với
các dòng quét y=k và y=k+1 ta có:
x k+1 - x k = 1/m ((k+1) - k) = 1/m hay x k+1 = x k + 1/m
Như vậy nếu lưu hoành độ giao điểm ứng với dòng quét trước lại, cùng với
hệ số góc của cạnh, ta xác định được hoành độ giao điểm ứng với dòng quét kế tiếp theo công thức trên Nên thông tin của cạnh có 2 biến: DxPerScan , xIntersect
+ Trường hợp dòng quét đi ngang qua một đỉnh:
Tính 1 giao điểm nếu chiều của 2 cạnh kề của đỉnh đó có xu hướng tăng hay giảm
Tính 2 giao điểm nếu chiều của 2 cạnh của đỉnh đó có xu hướng thay đổi, nghĩa là tăng - giảm hay giảm - tăng
Trang 33Hình 1.11 Qui tắc tính: một giao điểm (A) và hai giao điểm (B)
1.5 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:
1.5.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.5.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
Trang 34nà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.5.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
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.5.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.5.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 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 đó Để 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ữ
Trang 35CHƯƠNG II ỨNG DỤNG ĐỒ HỌA MÁY TÍNH TRONG DẠY HỌC
TOÁN
2.1 Ứng dụng Công nghệ thông tin - Truyền thông trong dạy học toán
Tổ chức, điều khiển quá trình học tập của học sinh dựa trên thông tin ngược
do máy tính điện tử cung cấp
So với các phương pháp truyền thống, thì rõ ràng các thông tin ngược do máy tính điện tử cung cấp sẽ chính xác hơn, khách quan hơn, nhanh chóng hơn và đây chính là một yếu tố quan trọng để giáo viên có thể điều khiển quá trình học tập của học sinh cũng như học sinh tự điều chỉnh lại việc học tập của mình Ví dụ:
- Giáo viên, học sinh có thể thử, kiểm tra để xác định trước kết quả trên máy tính điện tử, rồi sau đó lần ngược dần dần để tìm ra lời giải cho bài toán
- Trong quá trình dạy học toán, giáo viên và học sinh có thể đưa ra các giả thuyết của riêng mình rồi nhờ máy tính điện tử thử nghiệm những giả thuyết
đó để có thể tiếp tục phát triển hoặc điều chỉnh, thay đổi giả thuyết của mình
Sử dụng máy tính điện tử xây dựng các mô hình trực quan sinh động
Để nghiên cứu một đối tượng toán học nào đó trước hết người ta tìm cách xây dựng mô hình tương ứng Trên cơ sở các kết quả làm việc với mô hình đó sẽ đi đến việc chứng minh hoặc lời giải trong trường hợp tổng quát So với các phương tiện đồ dùng dạy học truyền thống thì máy tính điện tử có khả năng nổi trội hơn trong việc thể hiện các đối tượng toán học trong thế giới thực bởi mô hình đồ họa 2 chiều, 3 chiều Công nghệ Thông tin - Truyền thông được coi là một công cụ tự nhiên để diễn tả các mô hình toán học, đồ thị, biểu đồ, hình vẽ và quá trình chuyển động của các đối tượng toán học theo một quy luật nào đó Vì vậy những đối tượng, quan hệ toán học không còn trừu tượng, xa lạ và khó nắm bắt đối với một số đông học sinh Điều này giúp học sinh tiếp thu tốt các nội dung khó, có tính trừu tượng cao trong toán học
Trang 36Sử dụng máy tính điện tử và phần mềm dạy học để phát hiện các tính chất, các mối quan hệ trong toán học
Ta sử dụng phần mềm dạy học để biểu dễn các mô hình, biểu đồ, hình vẽ … một cách trực quan sinh động Chỉ cần một vài thao tác đơn giản như kéo rê chuột ta
có thể có được những hình ảnh về đối tượng cần nghiên cứu dưới các góc độ khác nhau hoặc có thể cho một vài thành phần của đối tượng toán học biến đổi để nghiên cứu các thành phần còn lại từ đó phát hiện ra các mối quan hệ, tính chất của chúng
Sử dụng kết hợp các phần mềm đồ họa và số học, giáo viên có thể giải thích
cả hai trạng thái hình dạng và số lượng
Dạy học toán với máy tính
Trong quá trình nghiên cứu về sử dụng máy tính điện tử để dạy học toán thì việc khai thác đồ họa trên máy tính điện tử được đặc biệt quan tâm vì đây là công cụ rất hữu ích trong việc biểu diễn các mô hình toán học
John Mason đã khẳng định rằng các phần mềm dạy học toán với một hệ thống công cụ có khả năng giải toán giúp học sinh nghiên cứu các đối tượng để tìm
ra các tính chất toán học Rosamund Sutherland khi nghiên cứu dạy học toán với phần mềm Logo đã đúc kết rằng: Điều quan trọng nhất là khi học sinh sử dụng ngôn ngữ, ký hiệu máy tính thì sẽ phát triển khả năng khái quát hóa toán học Wan Fatimah Bt Wan Ahmad, Halimah Badioze Zaman cho rằng bằng việc sử dụng máy tính điện tử trong dạy học toán có thể cung cấp nhiều cách học khác nhau, đặc biệt
là tổ chức học nhóm và phần mềm dạy học đã giúp cho khả năng suy luận toán học của học sinh đạt hiệu quả rất cao
Đào Thái Lai khẳng định nếu sử dụng Công nghệ Thông tin - Truyền thông một cách hợp lý trong dạy học toán thì sẽ tăng được tỷ lệ học sinh khá, giỏi và giảm
tỷ lệ học sinh yếu so với dạy học truyền thống và giáo viên có điều kiện giúp được
Trang 37hầu hết học sinh rèn luyện năng lực sáng tạo, phương pháp nghiên cứu trong học tập
Như vậy hiệu quả sử dụng máy tính điện tử trong dạy học toán đã được nhiều chuyên gia giáo dục trên thế giới và Việt Nam nghiên cứu và đúc kết một số khẳng định đáng tin cậy
2.2 Một số vai trò của đồ họa máy tính trong dạy học toán
2.2.1 Truyền tải nội dung kiến thức toán học
Trong hoạt động toán học, có những việc gồm hàng loạt các thao tác tính toán, vẽ hình… Chúng thường chiếm rất nhiều thời gian học tập của học sinh nhưng đôi khi kết quả không chính xác Ta có thể sử dụng máy tính hỗ trợ học sinh trong các công đoạn này Ví dụ, bên cạnh việc yêu cầu học sinh nắm được và thực hiện chính xác các thao tác cơ bản để dựng một hình hình học thì đến một mức độ nào đó
có thể cho học sinh sử dụng máy tính điện tử với các phần mềm hình học để vẽ hình, thậm chí cho phép học sinh sử dụng các Macro gồm nhiều thao tác dựng hình Khi cần vẽ lại hình đó học sinh không cần phải thao tác lần lượt từ đầu mà chỉ cần gọi lệnh thực hiện Macro Như vậy đồ họa máy tính đã tác động trực tiếp đến xu hướng tăng cường các hoạt động để học sinh có điều kiện hiểu sâu hơn hoặc mở rộng hơn về nội dung kiến thức
2.2.2 Rèn luyện kỹ năng, củng cố, ôn tập kiến thức cũ
Ngày nay các phần mềm dạy học đã trở nên rất phong phú, đa dạng, trong đó
có rất nhiều phần mềm đồ họa có thể khai thác để rèn luyện kỹ năng thực hành cho học sinh Chẳng hạn với phần mềm Graph, học sinh có thể rèn luyện các kỹ năng cơ bản về khảo sát hàm số, tính diện tích của một miền phẳng, xác định góc của tiếp tuyến tại một điểm nào đó trên đồ thị với trục hoành… Với phần mềm hình học Euclides, Geometer‟s Sketchpad… Học sinh có thể rèn luyện kỹ năng thực hành dựng hình, tìm hiểu các bài toán quỹ tích một cách rất hiệu quả Như vậy việc luyện
Trang 38tập và tự kiểm tra đánh giá của học sinh không còn bị hạn chế về mặt thời gian và nội dung như các phương pháp kiểm tra thông thường
2.2.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
Máy tính điện tử với các phẩn mềm đồ họa cho phép giáo viên, học sinh tạo
ra các mô hình, mô tả quá trình diễn biến của các đại lượng toán học hoặc tổ chức thực nghiệm toán học Bằng quan sát trực quan quá trình do máy tính điện tử đưa ra, học sinh nêu ra giả thuyết và sử dụng máy tính điện tử để kiểm tra giả thuyết của mình Đây là cơ sở cho học sinh suy luận có lý để khẳng định hoặc bác bỏ giả thuyết ở bước tiếp theo Vấn đề này rất khó thực hiện nếu chỉ sử dụng các phương tiện đồ dùng dạy học truyền thống
Trong quá trình học tập, với sự hỗ trợ của máy tính điện tử và các phần mềm dạy học, học sinh tiến hành hàng loạt các hoạt động tìm hiểu, khám phá, phân tích
và kiểm chứng các giả thuyết của mình, đây chính là quá trình đi tới lời giải đúng đắn cho bài toán Qua các hoạt động này, học sinh sẽ hình thành, rèn luyện phương pháp học tập, phương pháp thực nghiệm toán học
2.2.4 Hình thành phẩm chất, đạo đức, tác phong cho học sinh
Việc sử dụng máy tính điện tử và phần mềm dạy học đã trực tiếp góp phần hình thành và phát triển kỹ năng sử dụng thành thạo máy tính điện tử và làm việc trong môi trường Công nghệ Thông tin - Truyền thông cho học sinh Đây là những đặc tính không thể thiếu của con người lao động trong thời đại của công nghệ cao trên cơ sở sự phát triển của Công nghệ Thông tin - Truyền thông
Sử dụng máy tính điện tử và phần mềm dạy học trong quá trình thu thập và
xử lý thông tin đã giúp hình thành và phát triển cho học sinh cách giải quyết vấn đề hoàn toàn mới: đưa ra các quyết định trên cơ sở kết quả xử lý thông tin Cách học này tránh được học vẹt, máy móc và góp phần hình thành cho học sinh một phương pháp nghiên cứu toán học mới
Trang 39Trong quá trình học tập môn toán với sự trợ giúp của máy tính điện tử và các phần mềm đồ họa dạy học, học sinh có điều kiện phát triển năng lực làm việc với cường độ cao một cách khoa học, đức tính cần cù, chịu khó, khả năng độc lập, sáng tạo, tự chủ và kỷ luật cao
2.3 Nhu cầu xử lý đồ họa MATLAB cho toán học
2.3.1 Tổng quan về MATLAB
2.3.1.1 Khái niệm về Matlab
Matlab là một ngôn ngữ lập trình thực hành bậc cao được sử dụng để giải các bài toán về kỹ thuật Matlab tích hợp được việc tính toán, thể hiện kết quả, cho phép lập trình, giao diện làm việc rất dễ dàng cho người sử dụng Dữ liệu cùng với thư viện được lập trình sẵn cho phép người sử dụng có thể có được những ứng dụng sau đây
Sử dụng các hàm có sẵn trong thư viện, các phép tính toán học thông thường Cho phép lập trình tạo ra những ứng dụng mới
Cho phép mô phỏng các mô hình thực tế
Phân tích, khảo sát và hiển thị dữ liệu
Với phần mềm đồ họa cực mạnh
Cho phép phát triển giao tiếp với một số phần mềm khác như C++, Fortran
2.3.1.2 Tổng quan về cấu trúc dữ liệu của Matlab, các ứng dụng
Matlab là một hệ thống tương giao, các phần tử dữ liệu là một mảng (mảng này không đòi hỏi về kích thước) Chúng cho phép giải quyết các vấn đề liên quan đến lập trình bằng máy tính, đặc biệt sử dụng các phép tính về ma trận hay vector và
có thể sử dụng ngôn ngữ C hoặc Fortran lập trình rồi thực hiện ứng dụng lập trình
đó bằng các câu lệnh gọi từ Matlab Matlab được viết tắt từ chữ MATRIX LABORATORY tức là thư viện về ma trận, từ đó phần mềm matlab được viết nhằm cung cấp cho việc truy cập vào phần mềm ma trận một cách dễ dàng, phần mềm ma trận này được phát triển bởi các công trình Linpack và Eispack Ngày nay
Trang 40Matlab được phát triển bởi Lapack và Artpack tạo nên một nghệ thuật phần mềm cho ma trận
a Dữ liệu
Dữ liệu của Matlab thể hiện dưới dạng ma trận, và có các kiểu dữ liệu được liệt kê sau đây
Kiểu đơn single, kiểu này có lợi về bộ nhớ dữ liệu vì nó đòi hỏi ít byte nhớ
hơn, kiểu dữ liệu này không được sử dụng trong các phép tính toán học, độ chính xác kém hơn
Kiểu double kiểu này là kiểu thông dụng nhất của các biến trong Matlab Kiểu Sparse
Kiểu int8, uint8, int16,…
Kiểu char ví dụ „Hello‟
Các kỹ sư, các nhà nghiên cứu khoa học
Dùng Matlab để tính toán, nghiên cứu tạo ra các sản phẩm tốt nhất trong sản xuất
c Toolbox là một công cụ quan trọng trong Matlab
Công cụ này được Matlab cung cấp cho phép bạn ứng dụng kỹ thuật để phân tích, thiết kế, mô phỏng các mô hình
Ta có thể tìm thấy toolbox ở trong môi trường làm việc của: