1) THƯ VIỆN CÁC BẢNG BIẾN THIÊN VÀ CODE
Khi soạn bài giảng môn Toán Giải tích cho các lớp 10, 11, 12 chúng ta có nhu cầu vẽ bảng biến thiên của hàm số. Có nhiều cách để vẽ bảng biến thiên này. Ở đây chúng tôi soạn sẵn các bảng biến thiên thông dụng vào một thư viện, các bạn sinh viên chỉ cần gọi bảng biến thiên ra, điều chỉnh số liệu rồi dán code vào file $\rm \TeX$.
Để sử dụng thư viện này các bạn sinh viên
- download tableauVarriation ở trang chủ về lưu tại thư mục chứa file $\rm \TeX\ $.
- Code (trên nền đen ở dưới) là các macro, không muốn dùng các macro này, các bạn dùng code trong đoạn bắt đầu từ
\begin{mplibcode}
đến hết \end{mplibcode}
để dán vào một file $\rm Lua\LaTeX$, nhớ viết thêm vào Preamble \usepackage{mplibcode}.
- Mở một file $\rm \TeX$ hoặc đang soạn một file $\rm \TeX$ theo cú pháp Lua$\rm \LaTeX$. Tại dòng đứng trước \begin{document}, chèn thêm lệnh \usepackage{luamplib}
Ví dụ 1: Bảng biến thiên của hàm số chỉ có
một điểm cực đại.
Ta sử dụng macro sau đây:
\newcommand{\bbtcd}[2]{
\begin{mplibcode}
input tableauVariation
beginTableau(0)
newLigneVariables(btex $x$ etex);val(btex $-\infty $ etex);
val(btex $#1$ etex);
val(btex $+\infty $ etex);
newLigneSignes(btex $ f'(x)$ etex);plus; val(btex 0 etex);moins;
newLigneVariations(btex $f(x)$ etex);valPos(btex $-\infty$ etex,0);
valPos(btex $#2$
etex,1);valPos(btex $-\infty$ etex,0);
endTableau;
\end{mplibcode}
}
\bbtcd{x_0}{y_0}
Khi biên dịch thành công, ta có kết quả:
|
Thầy Sơn sẽ hướng dẫn người học, thay các biểu thức $f'(x), f(x)$ lần lượt thành $y', y$, các dấu $\pm \infty$ và các giới hạn khi $x\to \pm \infty$ bới các số hữu hạn. Ví dụ:
Ví dụ 2: Bảng biến thiên của hàm số chỉ có
một điểm cực tiểu.
Ta sử dụng macro sau đây:
\newcommand{\bbtct}[2]{
\begin{mplibcode}
input tableauVariation
beginTableau(0)
newLigneVariables(btex $x$ etex);val(btex $-\infty $ etex);
val(btex $#1$ etex);
val(btex $+\infty $ etex);
newLigneSignes(btex $ f'(x)$ etex);moins; val(btex 0 etex);plus;
newLigneVariations(btex $f(x)$ etex);valPos(btex $+\infty$ etex,1);
valPos(btex $#2$
etex,0);valPos(btex $+\infty$ etex,1);
endTableau;
\end{mplibcode}
}
\bbtct{x_0}{y_0}
Khi biên dịch thành công, ta có kết quả:
|
Ví dụ 3: Bảng biến thiên của hàm số có
một cực đại và một cực tiểu (theo đúng thứ tự đó).
Ta sử dụng macro sau đây:
\newcommand{\bbtcdct}[4]{
\begin{mplibcode}
input tableauVariation
beginTableau(0)
newLigneVariables(btex $x$ etex);val(btex $-\infty $ etex);
val(btex $#1$ etex); val(btex $#2$ etex);
val(btex $+\infty $ etex);
newLigneSignes(btex $ f'(x)$ etex);plus; val(btex 0 etex);moins;
val(btex 0 etex);plus;
newLigneVariations(btex $f(x)$ etex);valPos(btex $-\infty$ etex,0);
valPos(btex $#3$etex,1);valPos(btex $#4$ etex,0);
valPos(btex $+\infty$ etex,1);
endTableau;
\end{mplibcode}
}
\bbtcdct{x_0}{x_1}{y_0}{y_1}
Khi biên dịch thành công, ta có kết quả:
|
Ví dụ 4: Bảng biến thiên của hàm số có
một cực tiểu và một cực đại (theo đúng thứ tự đó).
Ta sử dụng macro sau đây:
\newcommand{\bbtctcd}[4]{
\begin{mplibcode}
input tableauVariation
beginTableau(0)
newLigneVariables(btex $x$ etex);val(btex $-\infty $ etex);
val(btex $#1$ etex); val(btex $#2$ etex);
val(btex $+\infty $ etex);
newLigneSignes(btex $ f'(x)$ etex);moins; val(btex 0 etex);plus;
val(btex 0 etex);moins;
newLigneVariations(btex $f(x)$ etex);valPos(btex $+\infty$ etex,1);
valPos(btex $#3$etex,0);valPos(btex $#4$ etex,1);
valPos(btex $-\infty$ etex,0);
endTableau;
\end{mplibcode}
}
\bbtctcd{x_0}{x_1}{y_0}{y_1}
Khi biên dịch thành công, ta có kết quả:
|
Ví dụ 5: Bảng biến thiên của hàm số có
một cực đại, một cực tiểu và một cực đại (theo đúng thứ tự đó).
Ta sử dụng macro sau đây:
\newcommand{\bbtcdctcd}[6]{
\begin{mplibcode}
input tableauVariation
beginTableau(0)
newLigneVariables(btex $x$ etex);val(btex $-\infty $ etex);
val(btex $#1$ etex); val(btex $#2$ etex);val(btex $#3$ etex);
val(btex $+\infty $ etex);
newLigneSignes(btex $ f'(x)$ etex);plus; val(btex 0 etex);moins;
val(btex 0 etex);plus;val(btex 0 etex);moins;
newLigneVariations(btex $f(x)$ etex);valPos(btex $-\infty$ etex,0);
valPos(btex $#4$etex,1);valPos(btex $#5$ etex,0);
valPos(btex $#6$ etex,1);
valPos(btex $-\infty$ etex,0);
endTableau;
\end{mplibcode}
}
\bbtcdctcd{x_0}{x_1}{x_2}{y_0}{y_1}{y_2}
Khi biên dịch thành công, ta có kết quả:
|
Ví dụ 6: Bảng biến thiên của hàm số có
một cực tiểu, một cực đại và một cực tiểu. (theo đúng thứ tự đó).
Ta sử dụng macro sau đây:
\newcommand{\bbtctcdct}[6]{
\begin{mplibcode}
input tableauVariation
beginTableau(0) newLigneVariables(btex $x$ etex);val(btex $-\infty $ etex);
val(btex $#1$ etex); val(btex $#2$ etex);val(btex $#3$ etex);
val(btex $+\infty $ etex);
newLigneSignes(btex $ f'(x)$ etex);moins; val(btex 0 etex);plus;
val(btex 0 etex);moins;val(btex 0 etex);plus;
newLigneVariations(btex $f(x)$ etex);valPos(btex $+\infty$ etex,1);
valPos(btex $#4$etex,0);valPos(btex $#5$ etex,1); valPos(btex $#6$ etex,0);
valPos(btex $+\infty$ etex,1);
endTableau;
\end{mplibcode}
}
\bbtctcdct{x_0}{x_1}{x_2}{y_0}{y_1}{y_2}
Khi biên dịch thành công, ta có kết quả:
|
Ví dụ 7: Bảng biến thiên của hàm số
nhất biến tăng.
Ta sử dụng macro sau đây:
\newcommand{\bbtnbt}[2]{
\begin{mplibcode}
input tableauVariation
beginTableau(0)
newLigneVariables(btex $x$ etex);
val(btex $-\infty $ etex);val(btex $#1$ etex);val(btex $+\infty $ etex);
newLigneSignes(btex $\atop{\displaystyle f'(x)}$ etex);plus; nonDefBarre;plus;
newLigneVariations(btex $\atop{\displaystyle f(x)}$ etex);
valPos(btex $#2$ etex,0); limGauche(btex $+\infty $ etex,1);
nonDefBarre;limDroite(btex $-\infty$ etex,0);valPos(btex $#2$ etex,1);
endTableau;
\end{mplibcode}
}
\bbtnbt{x_0}{y_0}
Khi biên dịch thành công, ta có kết quả:
|
Ví dụ 8: Bảng biến thiên của hàm số
nhất biến giảm.
Ta sử dụng macro sau đây:
\newcommand{\bbtnbg}[2]{
\begin{mplibcode}
input tableauVariation
beginTableau(0) newLigneVariables(btex $x$ etex);
val(btex $-\infty $ etex);val(btex $#1$ etex);val(btex $+\infty $ etex);
newLigneSignes(btex $\atop{\displaystyle f'(x)}$ etex);moins; nonDefBarre;moins;
newLigneVariations(btex $\atop{\displaystyle f(x)}$ etex);
valPos(btex $#2$ etex,1); limGauche(btex $-\infty $ etex,0);
nonDefBarre;limDroite(btex $+\infty$ etex,1);valPos(btex $#2$ etex,0);
endTableau;
\end{mplibcode}
}
\bbtnbg{x_0}{y_0}
Khi biên dịch thành công, ta có kết quả:
|
Ví dụ 9: Bảng biến thiên của hàm số có
một cực đại, một đường tiệm cận đứng và một cực tiểu (theo đúng thứ tự đó)
Ta sử dụng macro sau đây:
\newcommand{\bbtcdkxdct}[5]{
\begin{mplibcode}
input tableauVariation
beginTableau(0) newLigneVariables(btex $x$ etex);
val(btex $-\infty $ etex);val(btex $#1$ etex);val(btex $#2$ etex);
val(btex $#3$ etex);val(btex $+\infty $ etex);
newLigneSignes(btex $f'(x)$ etex);plus; val(btex 0 etex);moins;
nonDefBarre;moins;val(btex 0 etex);plus;
newLigneVariations(btex $f(x)$ etex);
valPos(btex $-\infty$ etex,0); valPos(btex $#4$ etex,1);
limGauche(btex $-\infty $ etex,0);nonDefBarre;
limDroite(btex $+\infty$ etex,1);valPos(btex $#5$ etex,0);
valPos(btex $+\infty$ etex,1);
endTableau;
\end{mplibcode}
}
\bbtcdkxdct{x_1}{x_0}{x_2}{y_1}{y_2}
Khi biên dịch thành công, ta có kết quả:
|
Ví dụ 10: Bảng biến thiên của hàm số có
một cực tiểu, một đường tiệm cận đứng và một cực đại (theo đúng thứ tự đó)
Ta sử dụng macro sau đây:
\newcommand{\bbtctkxdcd}[5]{
\begin{mplibcode}
input tableauVariation
beginTableau(0) newLigneVariables(btex $x$ etex);
val(btex $-\infty $ etex);val(btex $#1$ etex);val(btex $#2$ etex);
val(btex $#3$ etex);val(btex $+\infty $ etex);
newLigneSignes(btex $f'(x)$ etex);moins; val(btex 0 etex);plus;
nonDefBarre;plus;val(btex 0 etex);moins;
newLigneVariations(btex $f(x)$ etex);
valPos(btex $+\infty$ etex,1); valPos(btex $#4$ etex,0);
limGauche(btex $+\infty $ etex,1);nonDefBarre;
limDroite(btex $-\infty$ etex,0);valPos(btex $#5$ etex,1);
valPos(btex $-\infty$ etex,0);
endTableau;
\end{mplibcode}
}
\bbtctkxdcd{x_1}{x_0}{x_2}{y_1}{y_2}
Khi biên dịch thành công, ta có kết quả:
|
- Hai dạng 9 và 10 là của hàm số $y=\dfrac{ax^2+bx+c}{dx+e}$ lớp 12 sẽ học trong năm học 2024-2025.
- Ngoài 10 dạng phổ biến nói trên, các dạng biệt lập Thầy Sơn sẽ có hướng dẫn sau.
- Code của các bảng biến thiên thầy Sơn viết trong file macro_tdmu1.tex (1 là phiên bản, sau này Thầy sẽ nâng cấp dần lên để các bạn dễ sử dụng khi soạn các tài liệu giảng dạy)
|
2) THƯ VIỆN CÁC HÌNH TRONG HHKG
Để sử dụng thư viện các hình trong Hình học không gian, các bạn download file
macro_tdmu1_1.tex ở trang chủ hay bấm vào nút
về lưu tại thư mục có chứa file $\rm \TeX$ đang soạn thảo.
Mở một file $\rm \TeX$ hoặc đang soạn một file $\rm \TeX$ theo cú pháp Lua$\rm \LaTeX$. Tại dòng đứng trước \begin{document}, chèn thêm lệnh \usepackage{luamplib}.
- Chèn hình vẽ mặt phẳng.
code
\newcommand{\matphang}[1]{
\begin{mplibcode}
input couleur;
beginfig(1);
numeric u;
pair t,r;
transform T,S;
path p;
u= 1cm;
t=(4u,0u); r=(1u,2u);
T = identity shifted t;
S = identity shifted r;
z0=(0u,0u);
z1 = z0 transformed T;
z2 = z0 transformed S;
z3 = z0 transformed T transformed S;
p:=z0--z1--z3--z2--cycle;
fill p withcolor bleu_ciel;
draw z0--z2;
draw z2--z3;
pickup pencircle scaled 2pt;
draw z0--z1;
draw z1--z3;
pickup pencircle scaled 0.5pt;
label.urt(btex $#1$ etex, z0+(0.1u,0u));
endfig;
end
\end{mplibcode}
}
Cú pháp
phần trong ngoặc là tên mặt phẳng. Ví dụ:
- Chèn hình giao tuyến của hai mặt phẳng.
code
\newcommand{\giaotuyen}[3]{
\begin{mplibcode}
input couleur;
beginfig(2);
numeric u;
pair t,r;
transform T,S;
path p[],q[];
u= 1cm;
t=(4u,0u); r=(1u,2u);
T = identity shifted t;
S = identity shifted r;
z0=(0u,0u);
z1 = z0 transformed T;
z2 = z0 transformed S;
z3 = z0 transformed T transformed S;
path p;
p:=z0--z1--z3--z2--cycle;
fill p withcolor bleu_ciel;
draw z0--z2;
pickup pencircle scaled 2pt;
draw z0--z1;
draw z1--z3;
pickup pencircle scaled 0.5pt;
label.urt(btex $#1$ etex, z0+(0.1u,0u));
z5 = 0.5[z0,z1];
z6 = z5 transformed S;
z7 = (2.5u,-1u);
z8 = z7 transformed S;
z5 = 0.5[z9,z7];
z10= z9 transformed S;
p1 = z2--z6;
q1= z9--z10;
z11 = p1 intersectionpoint q1;
p2 = z7--z8;
q2= z5--z1;
z12 = p2 intersectionpoint q2;
path pp;
pp=z7--z8--z10--z9--cycle;
fill pp withcolor green;
path ppp;
ppp:=z5--z6--z11--z9--cycle;
fill ppp withcolor (green+.55*bleu_ciel);
path Pp;
Pp:=z5--z12--z8--z6--cycle;
fill Pp withcolor (green +.75*bleu_ciel);
draw z5--z6 withcolor bleu;
draw z9--z7;
draw z9--z10;
draw z10--z6;
draw z6--z3;
draw z6--z8 dashed evenly;
draw z11--z6 dashed evenly;
draw z2--z11;
draw z5--z12 withpen pencircle scaled 2pt;
draw z12--z8 dashed evenly;
draw z7--z12;
label.rt(btex $#2$ etex, z9);
label.rt(btex $#3$ etex, 0.5[z5,z6])withcolor bleu;
endfig;
end
\end{mplibcode}
}
Cú pháp
phần trong ngoặc là tên hai mặt phẳng và tên giao tuyến. Ví dụ:
- Chèn hình xác định mặt phẳng bởi ba điểm không thẳng hàng.
code
\newcommand{\mpABC}[4]{
\begin{mplibcode}
input couleur;
beginfig(3);
numeric u;
pair t,r;
transform T,S;
u= 1cm;
t=(4u,0u); r=(1u,2u);
T = identity shifted t;
S = identity shifted r;
z0=(0u,0u);
z1 = z0 transformed T;
z2 = z0 transformed S;
z3 = z0 transformed T transformed S;
path p;
p:=z0--z1--z3--z2--cycle;
fill p withcolor bleu_ciel;
draw z0--z2;
draw z2--z3;
pickup pencircle scaled 2pt;
draw z0--z1;
draw z1--z3;
pickup pencircle scaled 0.5pt;
label.urt(btex $#1$ etex, z0+(0.1u,0u));
dotlabel.top(btex $#2$ etex, (2u,1.5u));
dotlabel.top(btex $#3$ etex, (1u,.5u));
dotlabel.top(btex $#4$ etex, (3u,1u));
endfig;
end
\end{mplibcode}
}
Cú pháp
phần trong ngoặc là tên của mặt phẳng và tên của ba điểm. Ví dụ:
- Chèn hình xác định mặt phẳng bởi hai đường thẳng cắt nhau.
code
\newcommand{\mpPddcn}[3]{
\begin{mplibcode}
input couleur;
beginfig(4);
numeric u;
pair t,r;
transform T,S;
u= 1cm;
t=(4u,0u); r=(1u,2u);
T = identity shifted t;
S = identity shifted r;
z0=(0u,0u);
z1 = z0 transformed T;
z2 = z0 transformed S;
z3 = z0 transformed T transformed S;
path p;
p:=z0--z1--z3--z2--cycle;
fill p withcolor bleu_ciel;
draw z0--z2;
draw z2--z3;
pickup pencircle scaled 2pt;
draw z0--z1;
draw z1--z3;
pickup pencircle scaled 0.5pt;
label.urt(btex $#1$ etex, z0+(0.1u,0u));
z4 = (0.8u,1u); z5 =(4u,1.5u);draw z4--z5;
z6 = (1u,1.6u);z7=(3.6u,0.4u);draw z6--z7;
label.rt(btex $#2$ etex, z5);
label.rt(btex $#3$ etex, z7);
endfig;
end
\end{mplibcode}
}
Cú pháp
phần trong ngoặc là tên của mặt phẳng và tên của hai đường thẳng. Ví dụ:
- Chèn hình xác định mặt phẳng bởi hai đường thẳng song song.
code
\newcommand{\mpPddss}[3]{
\begin{mplibcode}
input couleur;
beginfig(6);
numeric u;
pair t,r;
transform T,S;
u= 1cm;
t=(4u,0u); r=(1u,2u);
T = identity shifted t;
S = identity shifted r;
z0=(0u,0u);
z1 = z0 transformed T;
z2 = z0 transformed S;
z3 = z0 transformed T transformed S;
path p;
p:=z0--z1--z3--z2--cycle;
fill p withcolor bleu_ciel;
draw z0--z2;
draw z2--z3;
pickup pencircle scaled 2pt;
draw z0--z1;
draw z1--z3;
pickup pencircle scaled 0.5pt;
label.urt(btex $#1$ etex, z0+(0.1u,0u));
z4 = (1u,1.3u); z5 =(3u,1.8u);draw z4--z5;
z6 = (1.5u,0.2u);z7 = z6 shifted (z5-z4);draw z6--z7;
label.rt(btex $#2$ etex, z5);
label.rt(btex $#3$ etex, z7);
endfig;
end
\end{mplibcode}
}
Cú pháp
phần trong ngoặc là tên của mặt phẳng và tên của hai đường thẳng. Ví dụ:
- Chèn hình xác định mặt phẳng bởi một điểm và một đường thẳng.
code
\newcommand{\mpPAd}[3]{
\begin{mplibcode}
input couleur;
beginfig(5);
numeric u;
pair t,r;
transform T,S;
u= 1cm;
t=(4u,0u); r=(1u,2u);
T = identity shifted t;
S = identity shifted r;
z0=(0u,0u);
z1 = z0 transformed T;
z2 = z0 transformed S;
z3 = z0 transformed T transformed S;
path p;
p:=z0--z1--z3--z2--cycle;
fill p withcolor bleu_ciel;
draw z0--z2;
draw z2--z3;
pickup pencircle scaled 2pt;
draw z0--z1;
draw z1--z3;
pickup pencircle scaled 0.5pt;
label.urt(btex $#1$ etex, z0+(0.1u,0u));
dotlabel.top(btex $#2$ etex, (2u,1.5u));
z4 = (1u,.5u);
z5 = (3u,1u);
draw z4--z5;
label.top(btex $#3$ etex, z5);
endfig;
end
\end{mplibcode}
}
Cú pháp
phần trong ngoặc là tên của mặt phẳng, của điểm và của đường thẳng. Ví dụ:
- Chèn hình minh hoạ hai đường thẳng chéo nhau.
code
\newcommand{\cheonhauPddA}[4]{
\begin{mplibcode}
input couleur;
beginfig(7);
%representation de deux droites non parallelles et sans point commun
numeric u;
pair t,r;
transform T,S;
u= 1cm;
t=(4u,0u); r=(1u,2u);
T = identity shifted t;
S = identity shifted r;
path p[];
%tracé du plan
z0=(0u,0u);
z1 = z0 transformed T;
z2 = z0 transformed S;
z3 = z0 transformed T transformed S;
path p;
p:=z0--z1--z3--z2--cycle;
fill p withcolor bleu_ciel;
draw z0--z2;
draw z2--z3;
pickup pencircle scaled 2pt;
draw z0--z1;
draw z1--z3;
pickup pencircle scaled 0.5pt;
label.urt(btex $#1$ etex, z0+(0.1u,0u));
%tracé de la droite
z4 = (0.5u,.5u);
z5 = (4u,1u);
draw z4--z5;
label.top(btex $#2$ etex, z5);
%tracé du point
z6 = (2u,1.5u);
z7 = (0.2u,1u);
dotlabel.rt(btex $#4$ etex, z6);
%on met en place les pointillés
z9 = z6 shifted 2z7;
z10 = z6 shifted -3z7;
p1 = z6--z10;
p2 = z0--z1;
z11 = p1 intersectionpoint p2;
draw z6--z11 dashed evenly;
draw z11--z10;
draw z6--z9;
%le nom de la droite
label.rt(btex $#3$ etex, z10);
endfig;
end
\end{mplibcode}
}
Cú pháp
phần trong ngoặc là tên của mặt phẳng chứa đường thẳng thứ nhất, đường thẳng thứ hai và giao điểm của đường thẳng và mặt phẳng. Ví dụ:
\cheonhauPddA{P}{d_1}{d_2}{A}
|
- Chèn hình minh hoạ một mặt phẳng cắt hai mặt phẳng song song.
code
\newcommand{\gtmpssPQdd}[4]{
\begin{mplibcode}
input couleur;
beginfig(8);
numeric u;
pair t,r;
transform T,S;
path p[],q[];
u= 1cm;
t=(4u,0u); r=(1u,2u);
T = identity shifted t;
S = identity shifted r;
z0=(0u,0u);
z1 = z0 transformed T;
z2 = z0 transformed S;
z3 = z0 transformed T transformed S;
path p;
p:=z0--z1--z3--z2--cycle;
fill p withcolor bleu_ciel;
draw z0--z2;
pickup pencircle scaled 2pt;
draw z0--z1;
draw z1--z3;
pickup pencircle scaled 0.5pt;
label.urt(btex $#1$ etex, z0+(0.1u,0u));
z4=(0u,-2.2u);
z5 = z4 transformed T;
z6 = z4 transformed S;
z7 = z4 transformed T transformed S;
path pp;
pp:=z4--z5--z7--z6--cycle;
fill pp withcolor 1.2*green;
draw z4--z6;
pickup pencircle scaled 2pt;
draw z4--z5;
draw z5--z7;
pickup pencircle scaled 0.5pt;
label.urt(btex $#2$ etex, z4+(0.1u,0u));
z8=1/5[z0,z1]+1/2[z0,z2];
z9=3/5[z4,z5]+1/2[z6,z4];
z10 = z8 transformed S;
z11 = z9 transformed S;
p1 = z10--z11;
q1 = z2--z3;
q2 = z0--z1;
q3 = z6--z7;
z12 = p1 intersectionpoint q1;
z13 = p1 intersectionpoint q2;
z14 = p1 intersectionpoint q3;
p2 = z8--z10;
z15 = p2 intersectionpoint q1;
p3 = z8--z9;
z16 = p3 intersectionpoint q2;
z17 = p3 intersectionpoint q3;
q4 = z4--z5;
z18 = p3 intersectionpoint q4;
p4 = z9--z11;
z19 = p4 intersectionpoint q4;
path k[];
k[1]:=z8--z10--z11--z9--cycle;
fill k[1] withcolor rose;
k[2]:=z8--z15--z12--z16--cycle;
fill k[2] withcolor (.75rose+.15bleu_ciel);
k[3]:=z16--z13--z12--cycle;
fill k[3] withcolor (.75rose+.35bleu_ciel);
k[4]:=z18--z17--z14--z19--cycle;
fill k[4] withcolor (.75rose+.25green);
k[5]:=z18--z19--z11--z14--cycle;
fill k[5] withcolor (.45rose+.45green);
draw z9--z19;draw z19--z11 dashed evenly;
draw z8--z9;
draw z8--z10;
draw z10--z12; draw z12--z13 dashed evenly;draw z13--z14;draw z14--z11 dashed evenly;
draw z2--z15; draw z15--z12 dashed evenly;draw z12--z3;
draw z16--z12;
draw z6--z17;draw z17--z14 dashed evenly;draw z14--z7;
draw z18--z14;
pickup pencircle scaled 2pt;
draw z4--z5;
draw z0--z1;
label.rt(btex $#3$ etex, 0.5[z12,z16]);
label.rt(btex $#4$ etex, 0.5[z18,z14]);
endfig;
end
\end{mplibcode}
}
Cú pháp
phần trong ngoặc là tên của hai mặt phẳng song song và giao tuyến của chúng với mặt phẳng thứ ba. Ví dụ:
\gtmpssPQdd{P}{Q}{d_1}{d_2}
|
- Chèn hình minh hoạ hai mặt phẳng cắt nhau cùng song song với một đường thẳng.
code
\newcommand{\haimpssdtPQdd}[4]{
\begin{mplibcode}
input couleur;
beginfig(9);
numeric u;
pair t,r;
transform T,S;
path p[];
u= 1cm;
t=(4u,1u); r=(0u,2u);
T = identity shifted t;
S = identity shifted r;
z0=(0u,0u);
z1 = z0 transformed T;
z2 = z0 transformed S;
z3 = z0 transformed T transformed S;
path p;
p:=z0--z1--z3--z2--cycle;
fill p withcolor bleu_ciel;
draw z0--z2;
draw z2--z3;
draw z1--z3;
pickup pencircle scaled 0.5pt;
label.urt(btex $#1$ etex, z0+(0.1u,0u));
z4=0.5[z0,z1];
z5 = z4 transformed S;
z6 = z4 shifted (1.5u,-1u);
z4=0.5[z6,z7];
z8 = z6 transformed S;
z9 = z7 transformed S;
p1= z4--z1;
p2 = z6--z8;
z10 = p1 intersectionpoint p2;
p3 = z2--z3; p4 = z9--z7;
z11 = p3 intersectionpoint p4;
path k[];
k[1]:=z8--z9--z7--z6--cycle;
fill k[1] withcolor green;
k[2]:=z11--z5--z4--z7--cycle;
fill k[2] withcolor (.75bleu_ciel+green);
k[3]:=z5--z8--z10--z4--cycle;
fill k[3] withcolor (green+.55bleu_ciel);
draw z5--z11;
draw z11--z9;draw z11--z7 dashed evenly; draw z7--z4 dashed evenly;
label.lft(btex $#2$ etex, z6+(0u,0.5u));
draw z4--z5 withcolor red;
label.lft(btex $#3$ etex,0.5[z4,z5])withcolor red;
draw z0--z4;draw z4--z6;draw z6--z8;draw z8--z9;draw z4--z7 dashed evenly;
draw z4--z10 dashed evenly;draw z10--z1;
z12 = (-1u,0u);
z13 = z12 shifted (0u,3u);
draw z13--z12 withcolor red;
label.lft(btex $#4$ etex, z12)withcolor red;
endfig;
end
\end{mplibcode}
}
Cú pháp
phần trong ngoặc là tên của hai mặt phẳng, giao tuyến của chúng và đường thẳng mà chúng song song. Ví dụ:
\haimpssdtPQdd{P}{Q}{d_1}{d_2}
|
- Chèn hình minh hoạ hai mặt phẳng cắt nhau lần lượt chứa hai đường thẳng song song.
code
\newcommand{\haimpdtssddd}[3]{
\begin{mplibcode}
input couleur;
beginfig(10);
numeric u;
pair t,r,v;
transform T,S,V;
path p[];
u= 1cm;
t=(3u,2u); r=(-2u,1.5u);v=(-3u,0u);
T = identity shifted t;
S = identity shifted r;
V = identity shifted v;
z0=(0u,0u);
z1 = z0 transformed T;
z2 = z0 transformed S;
z3 = z0 transformed S transformed T;
z4 = z0 transformed V;
z5 = z0 transformed V transformed T;
z101=0.1[z0,z1]; z10=0.9[z0,z1];
z23 = z101 transformed S; z32=z10 transformed S;
z45 = z101 transformed V; z54=z10 transformed V;
p1 = z101--z23; p2 = z4--z5;
z11 = p1 intersectionpoint p2;
path k[];
k[1]:=z45--z54--z32--z23--cycle;
fill k[1] withcolor green;
k[3]:=z23--z101--z10--z32--cycle;
fill k[3] withcolor bleu_ciel;
k[2]:=z23--z32--z54--z11--cycle;
fill k[2] withcolor (.75bleu_ciel+green);
draw z0--z1 ;
draw z2--z3 withcolor red;
draw z101--z23 ; draw z10--z32 ;
draw z23--z45 ; draw z32--z54 dashed evenly ;
draw z4--z11 ;
draw z11--z5 dashed evenly ;
label.rt(btex $#1$ etex, z0);
label.rt(btex $#2$ etex, z4);
label.top(btex $#3$ etex, z2);
endfig;
end
\end{mplibcode}
}
Cú pháp
phần trong ngoặc là tên của ba đường thẳng, trong đó đường thẳng thứ ba là giao tuyến.
\haimpdtssddd{d_1}{d_2}{d_3}
|
- Chèn hình minh hoạ điều kiện cần và đủ cho đường thẳng song song mặt phẳng.
code
\newcommand{\dtssmpdPd}[3]{
\begin{mplibcode}
input couleur;
beginfig(12);
numeric u;
pair t,r;
transform T,S;
u= 1cm;
t=(4u,0u); r=(1u,2u);
T = identity shifted t;
S = identity shifted r;
z0=(0u,0u);
z1 = z0 transformed T;
z2 = z0 transformed S;
z3 = z0 transformed T transformed S;
path p;
p:=z0--z1--z3--z2--cycle;
fill p withcolor bleu_ciel;
draw z0--z2;
draw z2--z3;
pickup pencircle scaled 2pt;
draw z0--z1;
draw z1--z3;
pickup pencircle scaled 0.5pt;
label.urt(btex $#2$ etex, z0+(0.1u,0u));
z4 = (1u,.5u);
z5 = (4u,1u);
draw z4--z5;
label.top(btex $#3$ etex, z4);
%la droite en dehors du plan
z6 = (1u,2.5u);
z7 = z6 shifted z5-z4;
draw z6--z7;
label.top(btex $#1$ etex, z6);
endfig;
end
\end{mplibcode}
}
Cú pháp
phần trong ngoặc là tên của đường thẳng, mặt phẳng và đường thẳng trong mặt phẳng.
- Chèn hình minh hoạ điều kiện cần và đủ cho hai mặt phẳng song song.
code
\newcommand{\haimpssPddQdd}[6]{
\begin{mplibcode}
input couleur;
beginfig(11);
numeric u;
pair t,r;
transform T,S;
u= 1cm;
t=(4u,0u); r=(1u,2u);
T = identity shifted t;
S = identity shifted r;
%premier plan P
z0=(0u,0u);
z1 = z0 transformed T;
z2 = z0 transformed S;
z3 = z0 transformed T transformed S;
path p;
p:=z0--z1--z3--z2--cycle;
fill p withcolor bleu_ciel;
draw z0--z2;
draw z2--z3;
pickup pencircle scaled 2pt;
draw z0--z1;
draw z1--z3;
pickup pencircle scaled 0.5pt;
label.urt(btex $#1$ etex, z0+(0.1u,0u));
z4 = (0.8u,1u); z5 =(4u,1.5u);draw z4--z5;
z6 = (1u,1.6u);z7=(3.6u,0.4u);draw z6--z7;
label.rt(btex $#2$ etex, z5);
label.rt(btex $#3$ etex, z7);
z10=(0u,-2.5u);
z11 = z10 transformed T;
z12 = z10 transformed S;
z13 = z10 transformed T transformed S;
path pP;
pP:=z10--z11--z13--z12--cycle;
fill pP withcolor green;
draw z10--z12;
draw z12--z13;
pickup pencircle scaled 2pt;
draw z10--z11;
draw z11--z13;
pickup pencircle scaled 0.5pt;
label.urt(btex $#4$ etex, z10+(0.1u,0u));
z14 = (0.8u,-1.5u); z15 =(4u,-1u);draw z14--z15;
z16 = (1u,-0.9u);z17=(3.6u,-2.1u);draw z16--z17;
label.rt(btex $#5$ etex, z15);
label.rt(btex $#6$ etex, z17);
endfig;
end
\end{mplibcode}
}
\haimpssPddQdd{}{}{}{}{}{}
|
phần trong ngoặc là tên của hai mặt phẳng và cặp đường thẳng đồng qui nằm trong chúng.
\haimpssPddQdd{P}{d_1}{d_2}{Q}{d'_1}{d'_2}
|