4.12.1. Một số câu lệnh cơ bản của Maple trong hình học phẳng
Để bắt đầu thực hiện tất cả các câu lệnh trong hình học phẳng, chúng ta phải mở
gói hình học phẳng bằng câu lệnh sau: [> with(geometry);
Tên trục toạđộ phải được khai báo khi xác định đối tượng. Nếu không khai báo các trục toạ độ phải sử dụng câu lệnh :_EnvHorizontalName và _EnvVerticalName sau ở đầu chương trình; nếu Maple nhắc ta nhập tên trục toạ độ, ta nhập như sau: [> _EnvHorizontalName := 'x’ _EnvVerticalName := 'y':
Ta có thể sử dụng Maple để kiểm tra tính tiếp xúc, trả lại các điểm cuối của một
đối tượng hình học (đoạn thẳng, đoạn thẳng định hướng, tam giác, hình vuông), cực,
đối tượng hình học trong hình học phẳng (point2d, segment2d, asegment2d, line2d, tnangle2d, square2d, circle2d, ellipse2d, parabola2d, hyperbola2d), tìm tên hai trục toạ độ sử dụng trong hàm xác định đối tượng,...
* Khai báo điểm khi biết toạđộ
[> point(p, Px, Py)↵
[> point(p, [Px, Py]); ↵
Trong đó: P : Tên điểm, Px: Hoành độ, Py: Tung độ.
* Tạo một điểm ngẫu nhiên trên một đường thẳng hoặc một đường tròn:
[> randpoint(w, u, v) ; ↵
Trong đó: w: Tên của điểm ngẫu nhiên,
u: Đường thẳng, đường tròn hay miền giá trị nào đó v: Miền giá trị.
* Khai báo đường thẳng đi qua 2 điểm và biết phương trình của nó:
[> line(l, [A, B]); ↵
[> line(l, eqn, n); ↵
Trong đó : l: Tên đường thẳng,
eqn: Phương trình tổng quát của đường thẳng, A, B: Các điểm,
n: Danh sách các tên biểu diễn hai trục toạđộ (viết trong dấu [ ]). * Khai báo đoạn thẳng (đoạn thẳng đinh hướng) khi biết hai đầu mặt:
[> segment(seg, [P1, P2]) ; ↵
[> segment(seg, P1, P2); ↵
[> dsegment(seg, P, P2) ; ↵
[> dsegment(seg,[P1, P2]) ; ↵
Trong đó: Pl, P2: Các đầu mút (có thể khai báo trực tiếp Pl, P2 bằng toạđộ), seg: Tên đoạn thẳng (hoặc đoạn thẳng định hướng).
* Xác định đường thẳng đi qua một điểm và song song (vuông góc) với một
[> Parallelline(lp, P, l); ↵
[> PerpendicularLine(lp, P, l); ↵
Trong đó: lp: Tên của đường thẳng tạo ra, P: Điểm,
l: Đường thẳng. * Khai báo tam giác khi biết 3 đỉnh:
[> triangle(T, [A, B, C], n); ↵
Trong đó: T: tên của tam giác; A, B, C: Ba điểm phân biệt, n: (tuỳ chọn) danh sách tên biểu diễn hai trục toạđộ. * Khai báo tam giác khi biết 3 đường thẳng chứa 3 cạnh:
[> triangle(T, [|1, |2, |3], n); ↵
Trong đó : T: Tên của tam giác,
|1, |2, |3]: Ba đường thẳng chứa ba cạnh của tam giác, n: (tuỳ chọn) danh sách tên biểu diễn hai trục toạđộ. * Khai báo tam giác T khi biết 3 cạnh (3 đoạn thẳng):
[> triangle(T, [side1, side2, side3]); ↵
Trong đó: T: Tên của tam giác,
side1, side2, side3 : Ba cạnh của tam giác T. * Khai báo tam giác khi biết 2 cạnh và một góc xen giữa:
[> triangle(T, [sidei, 'angle' = theta, side3], n); ↵
Trong đó: T: Tên của tam giác,
sidel, 'anglet = theta, side3: sidel và side3 là hai cạnh của tam giác, và thêm là góc giữa chúng.
n: (tuỳ chọn) danh sách tên biểu diễn hai trục toạđộ. * Xác định đường cao của tam giác:
[> altitude(hA, A, ABC, H); ↵
Trong đó: hA: Đường cao xuất phát từđỉnh A của tam giác ABC, H: (tuỳ chọn) tên -hình chiếu của A trên cạnh đối diện.
* Xác định đường phân giác trong (ngoài) của tam giác:
[> ExternatBisector(bA, A, ABC); ↵
Trong đó: bA: Phân giác trong (ngoài) xuất phát từđỉnh A, P: (tuỳ chọn) tên.
* Xác định đường trung tuyến:
[> median(mA, A, ABC, M); ↵
Trong đó: mA: Trung tuyến xuất phát từđỉnh A của tam giác ABC, M: (tuỳ chọn) tên - giao điểm của ma với cạnh đối diện đỉnh A. * Xác định đường ti-ung trực của đoạn thẳng An
[> PerpenBisector(l, A, Bu ↵
Trong đó: l: Tên đường thẳng cần tạo, A, B: Hai điểm.
* Tìm trực tâm H của tam giác ABC:
[> orthocenter(H, ABC); ↵
* Xác định trọng tâm của tam giác hoặc lâm tỉ cự G của tập hợp các điểm trong mặt phẳng:
[> centroid(G, g); ↵
Trong đó G: Tên của trọng tâm (tâm tỉ cự),
g: Tam giác, danh sách (tập hợp) các điểm trên một mặt phẳng. * Xác định đường tròn ngoại tiếp tam giác:
[> circumcircle(cc, T, 'centername'= cn); ↵
Trong đó: cc: Tên của đường tròn ngoại tiếp, T: Tam giác,
‘centemamel’= cn: (tuỳ chọn) có là tâm của đường tròn ngoại tiếp.
* Xác định đường tròn nội tiếp tam giác:
[> incircle(ic,T, 'centername'=cn); ↵
Trong đó: T: Tam giác,
ic: Tên của đường tròn nội tiếp,
'centername'=cn(tuỳ chọn), cn là tâm của đường tròn nội tiếp. * Xác định 3 đường tròn bàng tiếp tam giác:
[> excircle(obj, T, n); ↵
Trong đó: obj : Danh sách 3 đường tròn bàng tiếp,
n: (tuỳ chọn) danh sách gồm 3 phần tử dạng [cl(0l), c2(02), c3(03)], trong đó cl, c2, c2, 01, 02, 03 là các tên.
* Kiểm tra hai tam giác đồng dạng:
[> AresSimilar(Ti, T2, cond)l ↵
Trong đó: Ti, T2: Hai tam giác,
cond:(tuỳ chọn) tên- trả lại điều kiện để hai tam giác đồng dạng. * Kiểm tra một tam giác đều:
[> lsEquilateral(ABC, cond); ↵
Trong đó: ABC : Tam giác,
cond: (tuỳ chọn) tên - trả lại điều kiện để tam giác đều. * Kiểm tra một tam giác vuông:
[> lsRightTriangle(ABC, cond); ↵
Trong đó: ABC: Tam giác,
cond: (tuỳ chọn) tên - trả lại điều kiện để tam giác vuông. * Xác định điểm Giécgôn và điểm Naghen của tam giác:
[> GergonnePoint(G, ABC); ↵
[> NagelPoint(N, ABC); ↵
Trong đó: G: Tên điểm Giécgôn, N: Tên điểm Naghen.
* Xác định đường thẳng Euler và đường thẳng Simson của tam giác:
[> EulerLine(Ell, T); ↵
[> Simsonline(sl, N, T);
Trong đó: Ell: Tên đường thẳng Euler, sl: Tên đường thẳng Simson,
N: Điểm nằm trên đường tròn ngoại tiếp tam giác T. * Xác định đưng tròn Euler của tam giác:
[> EulerCircle(Elc, T, 'centername'=cn)l ↵
‘centemame' = cn: (tuỳ chọn) trong đó có là tâm của đường tròn Euler. * Khai báo đường tròn đi qua 3 điểm A, B, C cho trước:
[> circle(c, [A, B, C], n, 'centername'=m); ↵
Trong đó: n: (tuỳ chọn) danh sách hai tên biểu diễn tên của hai trục toạđộ, 'centernamet’=m: (tuỳ chọn) m là tâm của đường tròn.
* Khai báo đường tròn biết tâm và bán kính (hoặc biết đường kính):
[> circle(c, [O, rad], n, 'centername'=m); ↵
[> circle(c, [A, B], n, 'centername'=m); ↵
Trong đó: O: Tâm đường tròn,
rad: Độ lớn bán kính đường tròn, A, B: 2 đầu mút của đường kính. * Khai báo đường tròn khi biết phương trình đại số.
[> circle(c, eqn, n, 'centername'=m); ↵
Trong đó: eqn: Phương trình đại số biểu diễn đường tròn. * Khai báo côníc (c) đi qua 5 điểm phân biệt A, B, C, E, F:
[> conic(c, [A, B, C, E], n); ↵
* Khai báo côníc (c) biết đường chuẩn, tiêu điểm và tâm sai:
[> conic(c, [dir, gou, ecc], n); ↵
Trong đó: dir: Đường chuẩn của côníc, fou: Tiêu điểm,
ecc: Một số dương xác định tâm sai của côníc. * Khai báo côníc (c) biết phương trình đại số.
[> conic(c, eqn, n); ↵
Trong đó: eqn: Phương trình đại số,
* Khai báo Elíp khi biết hai tiêu điểm và độ dài trục lớn (độ dài trục bé):
[> ellipse(e, ['foci'=foi, 'MajorAxis'=lma], n); ↵
[> ellipse(e, ['foci'=foi, 'M'norAxis'=lmi], n); ↵
Trong đó: ‘foci’=foi: Danh sách hai tiêu điểm của Elíp, 'MajorAxist=lma: Độ dài trục lớn,
'MinorAxisl=lmi: Độ dài trục bé.
* Khai báo Elíp khi biết hai tiêu điểm và tổng khoảng cách từ một điểm bất kỳ thuộc Elíp đến các tiêu điểm:
[> ellipse(e, ['foci'=foi, 'distance'=dis], n); ↵
Trong đó: 'foci'=foi: Danh sách hai tiêu điểm của Elíp,
‘distance'=dis: Tổng khoảng cách từ một điểm bất kỳ thuộc Elíp đến các tiêu điểm.
* Khai báo Elíp khi biết hai điểm cuối của trục lớn và trục bé:
[> ellipse(e, ['MajorAxis'=ep1, 'MinorAxis'=ep2], n); ↵
Trong đó: 'MajorAxis'=epl : Danh sách hai điểm cuối của trục lớn, 'MinorAxis"=ep2: Danh sách hai điểm cuối của trục bé. * Khai báo Elíp khi biết phương trình đại số của chúng:
[> ellipse(e, eqn, n); ↵
Trong đó: eqn: Phương trình đại số. * Khai báo Hypebol đi qua 5 điểm A,B,C,D,E.'
[> hyperbola(h, [A, B, C, E, F], n); ↵
* Khai báo Hypebol khì biết đường chuẩn, tiêu điểm, tâm sai:
[> hyperbola(h, ['directrix'=dir,'focus'=fou, 'eccentricity'=ecc], n); ↵
Trong đó: 'directrix'=dir: Đường chuẩn, 'focus,=fou: Tiêu điểm,
'eccentricity'=ecc: Tâm sai.
* Khai báo Hypebol khi biết hai tiêu điểm, các đỉnh:
[> hyperbola(h, ['foci'=foi,'vertices'=ver], n); ↵
Trong đó: ‘vertices'=ver: Danh sách hai đỉnh của Hypebol, 'focil:foi: Danh sách hai tiêu điểm của Hypebol. * Khai báo Hypebol khi biết hai tiêu điểm và khoảng cách giữa hai đỉnh:
[> hyperbola(h, ['foci'=foi,'distancev'=disv], n); ↵
Trong đó: 'foci'=foi: Danh sách hai tiêu điểm của Hypebol,
‘distancev'=disv: Khoảng cách giữa hai đỉnh của Hypebol. * Khai báo Hypebol khi biết các đỉnh và khoảng cách giữa hai tiêu điểm:
[> hyperbola(h, ['vertices'=ver,'distancef=disf], n); ↵
Trong đó: ‘vertices'=ver: Danh sách hai đỉnh của Hypebol, ‘distancef’=disf: Khoảng cách giữa hai tiêu điểm. * Khai báo Hypebol khi biết phương trình đại số:
[> hyperbola(h, eqn, n); ↵
Trong đó: eqn: Phương trình đại số của Hypebol. * Khai báo Parabol đi qua 5 điểm A, B, C, E, F phân biệt.
[> parabola(p, [A, B, C, E, F], n); ↵
* Khai báo Parabol khi biết tiêu điểm và đỉnh:
[> parabola(p, ['focus'=fou, 'vertex'=ver], n); Trong đó: 'focus' = fou: Tiêu điểm,
'vertex'=ver: Đỉnh của Parabol.
* Khai báo Parabol khi biết đường chuẩn và tiêu điểm:
[> parabola(p, ['directrix'=dir, 'focus'=fou], n); ↵
Trong đó: 'focus'=fou: Tiêu điểm, ‘directrix'=dir: Đường chuẩn. * Khai báo Parabol khi biết phương trình đại số .
[> parabola(p, eqn, n); ↵
Trong đó: eqn: Phương trình đại số. * Kiểm tra 3 điểm thẳng hàng:
[> AreCollinear(p, Q, R, cond); ↵
Trong đó: P, Q, R: Ba điểm,
cond: (tuỳ chọn) tên - trả lại điều kiện để 3 điểm thẳng hàng. * Kiểm tra 3 đường thẳng đồng quy:
[> Areconcurrent(l1, l2, l3, cond); ↵
Trong đó: l1, l2, l3: Ba đường thẳng,
cond: tên - trả lại điều kiện để 3 đường thẳng đồng quy.
* Kiểng tra hai điểm A, B liên hợp điều hoà với hai điểm C, D cho trước trên đường thẳng:
* Kiểm tra hai đường thẳng song song:
[> AreParallel(11, 12, cond); ↵
Trong đó: l1, l2: Hai đường thẳng.
cond: (tuỳ chọn) tên - trả lại điều kiện để 2 đường thẳng song song. * Kiểm tra hai đường thẳng vuông gốc:
[> ArePerpendicular(l1, l2, cond); ↵
Trong đó: l1, l2: Hai đường thẳng,
cond: (tuỳ chọn) tên - trả lại điều kiện để hai đường thẳng vuông góc. * Kiểm tra một điểm, một danh sách hoặc tập hợp các điểm thuộc một đường thẳng:
[> lsOnline(f, cond); ↵
Trong đó: f: Một điểm, một danh sách hoặc tập hợp các điểm, l: Đường thẳng,
cond: tên - trả lại điều kiện để tập hợp điểm thuộc đường thẳng. * Kiểm tra 4 điểm P1, P2, P3, P4 bất kì cùng nằm trên một đường tròn:
[> Areconcyclic(pi1, P2, P3, P4, cond); ↵
Trong đó: cond (tên) trả lại điều kiện để 4 điểm thuộc đường tròn.
* Kiểm tra một điểm, một danh sách hoặc tập hợp các điểm cùng thuộc một đường tròn:
[> lsOncircle( f, c, cond); ↵
Trong đó f: Một điểm, một danh sách hoặc tập hợp các điểm, c: Đường tròn,
cond: trả lại điều kiện để tập hợp điểm thuộc đường tròn. * Kiểm tra hai đường tròn c1, c2 trực giao:
[> AreOrthogonal(c1, c2, cond); ↵
Trong đó: cond: trả lại điều kiện để hai đường tròn trực giao.
* Kiểm tra tính tiếp xúc giữa đường thẳng và đường tròn hoặc giữa hai đường tròn:
[> AreTangent(f, g); ↵
Trong đó: f, g: Một đường thẳng và một đường tròn hoặc hai đường tròn.
4.12.2 Các lệnh tính toán trong hình học
[> coordinates(P); ↵ * Xác định tung độ (hoành độ) của một điểm P: [> VerticalCoord(p); ↵ [> HorizontalCoord(p); ↵ * Tìm trung điểm của đoạn thẳng: [> midpoint(c, A, B);↵ [> midpoint(c, seg); ↵ [> midpoint(p1, p2);↵
Trong đó: C : Tên của trung điểm, A, B: Hai điểm, seg: Đoạn thẳng,
pl, p2: Các tên, các biểu thức hoặc các điểm. * Tìm các tiêu điểm của Elíp hoặc Hypebol:
[> foci(fn, f); ↵
Trong đó : fn: (tuỳ chọn) danh sách 2 tên, f: Một Elíp hoặc Hypebol.
* Tìm độ dài trục lớn (trục bé) của Elíp (e):
[> MajorAxis(e); ↵
[> MinorAxis(e); ↵
* Tìm đường đối cực của một điểm đổi với một côníc hoặc một đường tròn:
[> Polar(l, P, c) ↵
Trong đó : l: Tên của đường đối cực, P: Điểm,
c: Đường cômc hoặc đường tròn.
* Tìm cực của một đường thẳng đối với một côníc hoặc một đường tròn:
[> Pole(p, p, c); ↵
Trong đó: P : Tên cực của đường thẳng, p: Đường thẳng,
* Tìm hình chiếu của một điểm lên một đường thẳng:
[> projection(Q, P, l) ; ↵
Trong đó: Q: Tên của điểm chiếu, P: Điểm,
l: Đường thẳng.
* Trả lại hai đầu mút của một đoạn thẳng, đoạn thẳng định trường hoặc các đỉnh của một tam giác, hình vuông:
[> DefinedAs(obj); ↵
Trong đó: obj: Đoạn thẳng, đoạn thẳng định hướng, tam giác, hình vuông. * Trả lại phương trình đại số của một đối tượng hình học:
[> Equation(obj); ↵
[> Equation(obj, [x, y]); ↵
Trong đó: obj : Đối tượng hình học,
[x, y]: (tuỳ chọn) tên của hai trục toạđộ.
* Trả lại tên trục hoành (trục tung) trong phương trình xác định của đối tượng:
[> HorizontalName(obj); ↵
[> VerticalName(obi); ↵
Trong đó: obj : Đường thẳng, tam giác, đường tròn, parabol, elíp, hypebol. * Trả lại dạng xác định đối tượng:
[> form(obj); ↵
Trong đó: obj: Đối tượng hình học.
* Mô tả chi tiết các thuộc tính của đối tượng hình học:
[> detail(g); ↵
Trong đó: g: Đối tượng, danh sách hoặc tập hợp các đối tượng hình học. * Vẽ các đối tượng hình học:
[> draw(obj,...); ↵
[> draw([obj_1,..., obj_n],...); ↵
Trong đó: obj: Đối tượng cần vẽđồ thị,
[obj_l,..., obj_n]: Danh sách các đối tượng cán vẽđồ thị.
[> intercept(eqn1); ↵
[> intercept(eqn1, eqn2, {x, y})↵
Trong đó: eqnl, eqn2: Các phương trình (Ví dụ: y = x2 + 3), x, y: (tuỳ chọn) toạđộ của các biến.
* Tính độ dài có hướng giữa hai điểm A, B:
[> SensedMagnitude(A, B) ; ↵
* Tính tích có hướng của hai đoạn thẳng định hướng:
[> Crossproduct(dseg1, dseg2); ↵
Trong đó : dseg 1, dseg2 : Hai đoạn thẳng định hướng.
* Tính tỷ sốđiều hoà hoặc tự số kép của 4 điểm thẳng hàng A, B, C, D:
[> CrossRatio(A, B, C, F); ↵
* Tính các cạnh của tam giác hoặc hình vuông (g):
[> sides(g); ↵ * Tính bán kính của đường tròn c: [> radius(c); ↵ * Tính đường kính của một tập hợp điểm: [> diameter(g); ↵ Trong đó: g: Danh sách hoặc tập hợp các điểm. * Tính hệ số góc của một đường thẳng: [> slope(l) ; ↵ [> slope(A, B); ↵ Trong đó: l: Đường thẳng, A, B: Hai điểm. * Tính phương tích của điểm P đối với đường tròn c: [> powerpc(p, c);↵ * Tính khoảng cách: [> distance(p, l); ↵ [> distance(a, b); ↵ Trong đó: P: Điểm, đoạn thẳng, đoạn thẳng định hướng,
l: Điểm hoặc đường thẳng,
a, b: Các biểu thức hoặc các đối tượng thuộc kiểu khai báo điểm. * Tính diện tích:
[> area(obj); ↵
Trong đó: obj: Tam giác, hình vuông, đường tròn hoặc elíp.
* Xác định đường tròn Appollius của 3 đường tròn c1, c2, c3 cho trước:
[> Apollonius(c1, c2, c3); ↵
* Xác định trục đẳng phương 1 của hai đường tròn c1, c2:
[> RadicalAxis(l, ci, c2); ↵
* Xác định tâm đẳng phương d của ba đường mòn c1, c2, c3:
[> Radicalcenter(d, c1, c2, c3); ↵
* Xác định tiếp tuyên từ một điểm đến một đường tròn (tiếp tuyến tại một điểm trên
đường tròn đó):
[> TangentLine(obj, p, c, n); ↵
[> tangentpc(l, P, c), ↵
Trong đó: obj: Tiếp tuyến đi qua điểm P, l: Tiếp tuyến tại điểm P,
c: Đường tròn,
n: (tuỳ chọn) danh sách tên trục.
* Xác định giao điểm của hai đường thẳng hoặc hai đường tròn:
[> intersection(obj, f, g); ↵
Trong đó: obj: Tên các giao điểm,
f, g: Hai đường thẳng hoặc hai đường tròn. * Tính góc giữa hai đường thẳng hoặc hai đường tròn
[> FindAngle(u, v); ↵
Trong đó: u, v: Hai đường thẳng hoặc hai đường tròn.
4.12.3. Một vài minh hoạ việc sử dụng các lệnh trên
- Khai báo điểm A(x,y) : point : [> A:=[1,2]: hoặc [> point(A,[1,2]): ↵
- Đánh dấu điểm A : draw: [> draw(point(A,1,2)): ↵
thẳng với lệnh segment: [> point(A,[1,2]):point(B,[-1,-2]): segment(AB,[A,B]); ↵
Hoặc có thể sử dụng câu lệnh kép:
[> segment(AB,[point(A,[1,2]),point(B,[-1,-2])]): ↵
- Vẽđoạn thẳng qua 2 điểm A, B đã định nghĩa: [> draw(segment(AB,[A,B])): ↵
- Vẽ đường thẳng qua hai điểm A,B: [>line(l,[point(A,(1,2)),point(B,(-1,- 2))]):draw(l)↵
- Xác định đường thẳng 1 có dạng ax+by=c : [> line(l,2*x+9*y=-9,[x,y]): draw(l): ↵
- Xác định giao điểm của hai đường thẳng l1, l2: intersection,
[> line(l1, x = 0, [x,y]}, line(l2, x + y = 1, [x,y]): intersection(G, l1, l2); ↵
-Xác định toạđộ giao điểm: [> coordinates(G): ↵
- Xác định giao điểm giữa đường thẳng và đường tròn khi biết các phương trình của chúng:[>line(l, x + y = 1, [x,y]): circle(c, x^2 + y^2 = 1, [x,y]):
intersection(p, 1, c,[M,N]): detail(p): draw({l,c}); ↵
- Xác định giao điểm của hai đường tròn khi biết phương trình của chúng:
[> circle(c1, x^2 + y^2 = 1, [x,y]): circle(c2,[point(0,2,0),1.5],[x,y]): intersection(H,c2,c1,[U,V]): detail(H): ↵
-Vẽhai đường tròn cắt nhau ở trên như sau:
[> draw({c1,c2}): ↵
- Các câu lệnh sau khi thực hiện cần mở gói công cụ hình học với lệnh : [> with(geometry): ↵
Xác định tam giác: triangle:
-Xác định tam giác khi biết ba điểm:
[>point(A,0,0),point(B,1,1),point(c,1,0): triangle(T,[A,B,C]):type(T,'triangle2d'): method(T):map(coordinates,Defỉnedas(T)): ↵
- Dựng tam giác xác định bởi ba đường thẳng:
[>line(l1,y=0,[x,y]), line(l2,y=x,[x,y]), line(l3,x+y-2=0,[x,y]):triangle(l,[l1,l2,l3]): map(coordinates,DefinedAs(T)): ↵
- Xác định tam giác khi biết độ dài ba cạnh, ví dụ là 3,4,5: [> triangle(T,[3,4,5]):detail(T): ↵
cạnh lần lượt là 2, 1 và góc xen giữa là 45().
[> triangle( r,[2,'angle'=Pi/2,1]):method(T): DefinedAs( T): ↵
- Xác định các đường cao altitude() và trực tâm orthocenter() tam giác:
[> triangle(ABC, [point(A,0,0), point(B,2,0), point(c,1,3)]): altitude(hA1,A,ABC): altitude(hA2,B,ABC):altitude(hA3,C,ABC):orthocenter(H,ABC): coordinates(H): ↵
- Dựng các đường trung tuyến median () là trọng tâm centroid() tam giác:
[> triangle(ABC, [point(A,0,0), point(B,2,0), point(c,1,3)]):
median(mA, A, ABC): median(mB, B, ABC):median(mc,C,ABC): centroid(G,ABC): coordinates(G): ↵
- Dựng các đường trung trực PerpenBisector và tâm đường tròn ngoại tiếp tam giác:
[> point(A,0,0), point(B,2,0),point(C,-1,2):PerpenBisector(l1, A, B): PerpenBisector(12,C,B):PerpenBisector(13,A,C):intersection(0,l1,l2,l3): coordinates(O): ↵
- Dựng các đường phân giác bisector và tâm đường tròn nội tiếp incircle tam giác:
[> triangle(ABC, [point(A,0,0), point(B,2,0), point(C,1,3)]): bisector(bA, A, ABC):bisector(bB,B, ABC): bisector(bc,C,ABC): intersection(l,bA,bB,bC):coordinates(l): ↵
- Dựng đường tròn từ ba điểm phân biệt: circle
[> circle(c1,[point(A,0,0), point(B,2,0), point(c,1,2)],'centername'= O1): center(c1), coordinates(center(c1)): radius(c1); Equation(c1); detail(ci); ↵
- Dựng đường tròn khi biết hai điểm cuối của một đường kính: circle [> point(M,Horizontalcoord(O1)-radius(c1),Verticalcoord(O1)), point(N,Horizontalcoord(O1)+radius(c1),Verticalcoord(O1)): circle(c2,[M,N]), Equation(c2); ↵
- Dựng đưừng tròn khi biết tâm và bán kính của nó: circle [> circle(c3,[center(c1),radius(c1)]): Equation(c3): ↵
- Dựng đường tròn khi biết phương trình đại số của nó: circle()
[> circle(c4,Equation(c1),'centername'=O2): center(c4), coordinates(center(c4)): radius(c4): ↵
[> with(geometry):
triangle(r, [point(A,0,0), point(B,2,0), point(c,1,3)]): ↵
circumcircle(Elc, r,'centername'=OO);detail(Elc); draw({Elc,T},printtext=true): - Dựng đường tròn nội tiếp một tam giác: incircle
[> with(geometry):triangle(T, [point(a,0,0), point(B,2,0), point(c,1,3)]): incircle(inc,T,'centername'=0):detail(inc): ↵
- Dựng các đường tròn bàng tiếp một tam giác: excircle
[> with(geometry):ps := point(A,1,1),point(B,3,1),point(c,2,4): Triangle(T, [ps]): excircle(obj, T, [c1(o1),c2(o2),c3(o3)]): draw({op(obj), T},printtext=true); ↵
- Qua một điểm dựng đường thẳng song song với đường thẳng đã cho ParallelLine [> with(geometry):
EnvHorizontalName:='x':EnvVerticalName:='y': point(p, 2, 3), line(l,x + y =1,[x,y]);
ParallelLine(lp, P, l);
detail(lp);draw({lp(color=magenta),l,P(color=blue)}); ↵
- Qua một điểm dựng đường thẳng vuông góc với đường thẳng đã cho:
PerpendicularLine
[> point(P, 2, 3), line(l, x + y =1, [x,y]):
PerpendicularLine(lp, P, l):detail(lp): draw({l,lp,P})↵
- Qua một điểm dựng tiếp tuyên với một đường tròn: TangentLine [> point(A, 3, -2), circle(c, a^2 + b^2 = 1,[a,b]).
TangentLine(obj, A, c, [l1, l2]):
form(l1), Equation(l1):form(l2), Equation(l2): draw({A,c,l1,l2}): ↵
- Dựng trục đẳng phương RadicalAxis của hai đường tròn và tâm đẳng phương Radicalcenter của ba đường tròn:
[> circle(c1,x^2+y^2=8,'centername'=o1); circle(c2,x^2+(y-5)^2=9,'centername'=o2); RadicalAxis(l,c,ci):RadicalCenter(e,c,c1,c2): draw({l,c,c1});draw({e(color=blue),c,c1,c2}); ↵
- Kiểm tra hai đường thẳng có song song không: AreParallel [> line(l1,2*x+3*y+1=0,[x,y]):
line(l2,4*sqrt(2)*x+6*sqrt(2)*y-1=0,[x,y]): AreParallel(l1,l2): ↵
- Kiểm tra hai đường thẳng có vuông góc không: ArePerpendicular [> line(l1,y=x,[x,y]):line(l2,y:-x,[x,y]): ArePerpendicular(l1,l2): ↵
- Kiểm tra một điểm có thuộc một đường thẳng không: lsOnline [> point(A,0,-1):line(l1,2*x-y=2,[x,y]): lsOnline(A,11): ↵
- Kiểm tra một điểm có thuộc một đường lròn không: lsoncircle