Maple cung cấp hai gói công cụ để xử lý các bài toán trong hình học, đó là các gói geometry cho hình học phẳng và gói geom3d cho hình học không gian. Các hàm xử lý trong các gói công cụ này thực hiện các thao tác cơ bản để giải các bài toán hình học như viết phương trình đường thẳng, mặt phẳng, mặt cầu,…, tính diện tích tam giác, tứ giác, hình tròn,…, tính khoảng cách từ một điểm tới một đường thẳng hoặc một mặt phẳng…Nhìn chung, để giải được một bài toán hình học trong Maple, trong phần lớn các trường hợp, ta phải kết hợp các hàm xử lý cơ bản lại với nhau để giải quyết yêu cầu của bài toán. Trong phần dưới đây, tác giả sẽ không trình bày về cách thức sử dụng các hàm trong các gói công cụ trên mà chỉ đưa ra một số ví dụ để chúng ta thấy được khái quát về ứng dụng của Maple trong hình học.
Ví dụ 1: Kiến thức về các đường côníc được trang bị cho học sinh cuối
cấp ở bậc trung học phổ thông, để giúp cho học sinh và các thầy cô giáo có được công cụ học tập cũng như giảng dạy học phần này, Maple cung cấp gói công cụ Student[Precalculus][ConicsTutor].
[>ConicsTutor(x^2+4*y^2=1);
Ví dụ 2: Trong chương trình Toán ở bậc trung học cơ sở, rất nhiều bài
toán có đề cập tới tam giác và các yếu tố liên quan tới tam giác như đường trung tuyến, đường cao, đường trung trực, đường tròn nội tiếp, ngoại tiếp, bàng tiếp tam giác,…Vấn đề đặt ra ở đây là làm thế nào để xác định được các yếu tố đó một cách nhanh chóng khi chỉ biết được tọa độ 3 đỉnh của tam giác. Trong ví dụ này, tác giả muốn minh họa việc tổng hợp các hàm cơ sở mà Maple cung cấp để giải bài toán tìm một số yếu tố của tam giác khi biết tọa độ 3 đỉnh của tam giác đó. Chúng ta hãy quan sát mã chương trình dưới đây. [> restart; [> with(geometry): TamGiac:=proc(A,B,C) local p; triangle(ABC,[A,B,C],[x,y]); p:=sides(ABC);
print(`Chu vi tam giac:`); print(p[1]+p[2]+p[3]);
print(`Dien tich tam giac:`); print(area(ABC));
incircle(IO,ABC,'centername'=O2);
print(`Phuong trinh duong tron noi tiep:`); print(Equation(IO));
circumcircle(CO,ABC,'centername'=O1); print(`Phuong trinh duong tron ngoai tiep:`); print(Equation(CO));
print(`Phuongtrinh duong phan giac trong cua goc A:`);
print(Equation(bisector(bA,A,ABC)));
excircle(bt,ABC);
print(`Phuonh trinh duong tron bang tiep goc A:`);
print(Equation(bt[1])); line(AB,[A,B]); line(AC,[A,C]); print(``);print(``);print(``); draw([ABC(color=black),AB(color=black),AC(color=black),bA(color=b lue),CO(color=red),IO(color=magenta),bt[1] (color=magenta)],axes=none,title=`HINH VE MINH HOA`,printtext=true); end proc; [> point(A,7,3):point(B,0,1):point(C,0,5): [> TamGiac(A,B,C);
Ví dụ 3: Trong không gian cho 4 điểm A(0,0,0), B(0,1,1), C(0,1,4) và
D(5,1,4). Gọi (S) là mặt cầu tâm B có bán kính R=1. Viết phương trình mặt phẳng (P) đi qua A, C và D đồng thời tính khoảng cách từ B tới mặt phẳng (P), từ đó suy ra vị trí tương đối giữa mặt phẳng (P) và mặt cầu (S).
Dưới đây là mã chương trình giải bài toán này.
[>with(geom3d):
point(A,0,0,0):point(B,0,1,1):point(C,0,1,4):point(D,5,1,4): plane(P,[A,C,D],[x,y,z]):
print(`Phuong trinh mat phang P:`); Equation(P);
print(`Khoang cach tu B toi mat phang P:`); h:=distance(B,P);
print(`Ta thay h<R -> Mat phang P cat mat cau S`); sphere(S,[B,1]):