You are on page 1of 73

V≥ hình khoa hÂc TikZ - Asymptote

Z
K ÑN
T I
C a B
H ≈ cı
ch

e o
t h

Bùi Quˇ - 2020


Mˆc lˆc HÂc Tikz theo cách cıa b§n

Mˆc lˆc
I CÏ b£n v∑ v≥ hình b¨ng Tikz 4
I.1 Khai báo và môi tr˜Ìng v≥ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
I.2 Các Ëi t˜Òng hình hÂc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
I.2.1 Hª trˆc tÂa Î . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
I.2.2 Các lªnh cÏ b£n cıa Tikz . . . . . . . . . . . . . . . . . . . . . . . . . . 6
I.2.3 Khai báo i∫m, tham sË . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
I.2.4 Các hàm tính toán sË liªu cÏ b£n . . . . . . . . . . . . . . . . . . . . . . 6
I.2.5 Các phép toán Ëi vÓi tÂa Î . . . . . . . . . . . . . . . . . . . . . . . . 7
I.2.6 Hi∫n th‡ v´n b£n trong Tikz . . . . . . . . . . . . . . . . . . . . . . . . . 8
I.2.7 V≥ i∫m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
I.2.8 o§n thØng, ˜Ìng gßp khúc . . . . . . . . . . . . . . . . . . . . . . . . . 9
I.2.9 ˜Ìng tròn, Ellipse. Cung tròn, cung Ellipse . . . . . . . . . . . . . . . . 11
I.2.10 Các d§ng ˜Ìng cong khác . . . . . . . . . . . . . . . . . . . . . . . . . . 13
I.2.11 Lßy mÎt i∫m trên ˜Ìng cong, ti∏p tuy∏n cıa ˜Ìng cong . . . . . . . . 15
I.2.12 Giao i∫m cıa các ˜Ìng . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
I.2.13 Môi tr˜Ìng scope, clip, node và pic . . . . . . . . . . . . . . . . . . . . . 20
I.3 Các tùy chÂn th˜Ìng dùng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
I.3.1 Tùy chÂn chung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
I.3.2 VÓi node, pic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
I.3.3 Vòng l∞p foreach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
I.3.4 T§o macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
I.3.5 V≥ hình không gian (gi£ 3d) . . . . . . . . . . . . . . . . . . . . . . . . . 30

II B£ng xét dßu - B£ng bi∏n thiên - Á th‡ hàm sË 33


II.1 B£ng xét dßu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
II.2 B£ng bi∏n thiên . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
II.3 K∏t hÒp Tikz và tkz-tab v≥ b£ng bi∏n thiên tùy chønh . . . . . . . . . . . . . . . 37
II.4 V≥ b£ng bi∏n thiên b¨ng tikz thu¶n . . . . . . . . . . . . . . . . . . . . . . . . . 40
II.5 Á th‡ hàm sË . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
II.6 Á th‡ hàm sË trong hª tÂa Î c¸c . . . . . . . . . . . . . . . . . . . . . . . . . 43

III Tô mi∑n Á th‡ hàm sË vÓi Tikz 45


III.1 V≥ Á th‡ hàm sË . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
III.2 Tô mi∑n Á th‡ hàm sË . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
III.2.1 Khi ã bi∏t hoành Î các i∫m c™n cıa mi∑n c¶n tô . . . . . . . . . . . . 47
III.2.2 Tô mi∑n Á th‡ không bi∏t hoành Î giao i∫m . . . . . . . . . . . . . . . 50
III.2.3 S˚ dˆng even odd rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
III.3 Các ki∫u tô mi∑n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

Trung tâm GDNN - GDTX Duy Tiên Trang 2


HÂc Tikz theo cách cıa b§n Mˆc lˆc

IV T˜ duy hình hÂa ∫ v≥ hình 58


IV.1 Trình t¸ cÏ b£n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
IV.2 L¸a chÂn hª tÂa Î hÒp l˛ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
IV.3 S˚ dˆng Macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
IV.4 S˚ dˆng vòng l∞p foreach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
IV.5 Kˇ n´ng tìm ki∏m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

V Export hình £nh 61


V.1 Cài ∞t ImageMagick và Ghostscript . . . . . . . . . . . . . . . . . . . . . . . . 61
V.2 Làm £nh Îng tr¸c ti∏p trên PDF . . . . . . . . . . . . . . . . . . . . . . . . . . 65
V.3 Làm £nh Îng gif ∫ upload lên web . . . . . . . . . . . . . . . . . . . . . . . . 67

VI Các th˜ viªn th˜Ìng dùng 70


VI.1 calc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
VI.2 intersections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
VI.3 angles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
VI.4 patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
VI.5 Decoration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
VI.6 Shadings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

Trung tâm GDNN - GDTX Duy Tiên Trang 3


Mˆc lˆc HÂc Tikz theo cách cıa b§n

I CÏ b£n v∑ v≥ hình b¨ng Tikz

I.1 Khai báo và môi tr˜Ìng v≥

Khai báo gói lªnh:

\usepackage{tikz}
\usetikzlibrary{calc,angles}

Môi tr˜Ìng v≥:

\begin{tikzpicture}
.......
\draw ....
......
\end{tikzpicture}

Nh˜ v™y. MÎt file v≥ hình b¨ng Tikz có th∫ ¶y ı ∫ b§n biên d‡ch:

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{calc,angles}
\begin{document}
\begin{tikzpicture}
...........
\draw ....
...........
\end{tikzpicture}
\end{document}

I.2 Các Ëi t˜Òng hình hÂc

I.2.1 Hª trˆc tÂa Î

Các Ëi t˜Òng hình hÂc luôn g≠n vÓi hª tÂa Î. Chúng ta có th∫ s˚ dˆng mÎt trong
hai hª tÂa Î ∫ xác ‡nh các Ëi t˜Òng c¶n v≥: Hª tÂa Î vuông góc Oxy ho∞c tÂa Î
c¸c.

Trung tâm GDNN - GDTX Duy Tiên Trang 4


HÂc Tikz theo cách cıa b§n Mˆc lˆc

y
\begin{tikzpicture}[>=stealth]
\draw[->](-3,0)--(3,0);
\draw[->](0,-3)--(0,3);
\draw[dashed] (0,1)--(2,1)--(2,0);
\draw (2,1) circle (0.04); x
\draw (3,0) node[above]{$x$} (0,3) O
node[left]{$y$} (0,0) node[below
left]{$O$};
\end{tikzpicture}

\begin{tikzpicture}[>=stealth]
\def\r{sqrt(5)} y
\draw[->](-3,0)--(3,0);
\draw[->](0,-3)--(0,3);
\draw[dashed] (0,1)--(2,1)--(2,0);
\draw (0,0) circle (\r); x
\draw (0,0)--(2,1); O
\draw (2,1) circle (0.04);
\draw (3,0) node[above]{$x$} (0,3)
node[left]{$y$} (0,0) node[below
left]{$O$};
\end{tikzpicture}

∫ dπ dàng cho b§n khi b≠t ¶u t™p v≥, ta nên t§o l˜Ói tÂa Î vùng v≥ ∫ khi xem
k∏t qu£ ta dπ dàng hình dung ra cách th˘c và rút kinh nghiªm cho viªc s˚ dˆng lªnh
b¨ng cú pháp:
\draw[step=1,gray,thin] (lower left corner) grid (upper right corner);
trong ó lower left corner là tÂa Î i∫m góc trái phía d˜Ói và upper right corner
là tÂa Î i∫m góc ph£i bên trên cıa vùng v≥ l˜Ói
ChØng h§n t§o mÎt l˜Ói tÂa Î vÓi vùng v≥ t¯ ( 2; 1) ∏n (3; 2) ta dùng lªnh nh˜
sau:

\begin{tikzpicture}
\draw[step=1,gray,very thin]
(-2,-1) grid (3,2);
\end{tikzpicture}

Trung tâm GDNN - GDTX Duy Tiên Trang 5


Mˆc lˆc HÂc Tikz theo cách cıa b§n

I.2.2 Các lªnh cÏ b£n cıa Tikz

VÓi Tikz có các lªnh v≥ cÏ b£n sau:

1. Lªnh v≥ ˜Ìng: \draw[tùy chÂn] NÎi dung v≥;

2. Lªnh ˜a ¶u bút v≥ ∏n v‡ trí nào ó:


\path (TÂa Î i∫m) NÎi dung làm viªc ;

3. Lªnh tô màu: \fill[tùy chÂn] mi∑n tô màu;

Tßt nhiên trong Tikz còn mÎt sË lªnh khác, nh˜ng khi v≥ các hình thông th˜Ìng ta
chø c¶n s˚ dˆng ba lªnh trên là ı.

I.2.3 Khai báo i∫m, tham sË

Khi v≥ hình ta có nh˙ng i∫m c¶n s˚ dˆng nhi∑u l¶n, các thông sË c¶n s˚ dˆng nhi∑u
làm và các sË liªu tính toán. Yêu c¶u này buÎc ta c¶n khai báo tên các i∫m và giá tr‡
cıa các tham sË (hi∫u Ïn gi£n là mÎt cách vi∏t t≠t cho nh˙ng o§n lªnh dài hÏn).

• Khai báo i∫m có tÂa Î cho tr˜Óc:


\coordinate[tùy chÂn] (Tên i∫m) at (TÂa Î);
\coordinate[label=above:A] (A) at (1,2); s≥ khai báo cho ta i∫m A(1; 2)
và khi v≥ i∫m A Tikz s≥ t¸ Îng thêm nhãn cıa i∫m là A  phía trên cıa i∫m.
\coordinate (A) at (30:2); s≥ khai báo cho ta i∫m A(30 : 2) và không thêm
nhãn cıa i∫m.

• Gán giá tr‡ cho tham sË:


\def\a{3} : Gán cho tham sË a giá tr‡ 3 (hi∫u là cho a = 3). Khi dùng ∏n giá
tr‡ này trong Tizk chø c¶n gÂi \a .
p
\pgfmathsetmacro\a{2*sqrt(2)} : Gán cho tham sË a giá tr‡ 2 2. Chú ˛ khi
gán giá tr‡ cho tham sË, dùng \def khi gán mÎt giá tr‡ là mÎt sË cˆ th∫ (không
tính toán thông qua các phép tính) còn n∏u buÎc ph£i tính toán qua các phép tính
thì dùng \pgfmathsetmacro .

I.2.4 Các hàm tính toán sË liªu cÏ b£n

MÎt sË hàm tính toán trong Tikz

• sin (↵): Tr£ v∑ giá tr‡ sin ↵.

• cos (↵): Tr£ v∑ giá tr‡ cos ↵.

• tan (↵): Tr£ v∑ giá tr‡ tan ↵.

Trung tâm GDNN - GDTX Duy Tiên Trang 6


HÂc Tikz theo cách cıa b§n Mˆc lˆc

• asin (b): Tr£ v∑ giá tr‡ arcsin b.

• pow (↵,a): Tr£ v∑ giá tr‡ a↵ .

• ln (a): Tr£ v∑ giá tr‡ ln a.

• exp (↵): Tr£ v∑ giá tr‡ e↵ .

• loga (b) : Tr£ v∑ giá tr‡ loga b.


p
• sqrt (a): Tr£ v∑ giá tr‡ a.

• abs(a): Tr£ v∑ giá tr‡ tuyªt Ëi cıa a.

• int (a): Tr£ v∑ ph¶n nguyên cıa sË a.

Ngoài ra, các phép tính toán thông th˜Ìng: cÎng, tr¯, nhân, chia, lÙy th¯a dùng các
k˛ hiªu t˜Ïng ˘ng +,-,*,/,^ .

I.2.5 Các phép toán Ëi vÓi tÂa Î

• CÎng tÂa Î: N∏u ta có i∫m A(xA , yA ) và i∫m B(xB , yB ). Khi ó ta có tÂa Î


i∫m C(xA + xB , yA + yB ) b¨ng cách khai báo:
\coordinate (C) at ($(A)+(B)$);

• i∫m chia tø lª o§n thØng (Phép v‡ t¸): Ta có hai i∫m A và B . Lßy i∫m
AC
C sao cho = k ta khai báo:
AB
\coordinate (C) at ($(A)!k!(B)$);
Nh˜ v™y, hoàn toàn ta có th∫ lßy trung i∫m o§n thØng AB b¨ng cách
\coordinate (M) at ($(A)!.5!(B)$);

• Phép quay: MuËn lßy i∫m B là £nh cıa i∫m A qua phép quay tâm I , góc quay
' ta có th∫ dùng:
\coordinate (A) at ($(I)!1!góc quay:(B)$)
ChØng h§n lßy i∫m A là £nh cıa B qua phép quay tâm I , góc quay 30 ta dùng:
\coordinate (A) at ($(I)!1!30:(B)$);
HÏn th∏ n˙a, ta có th∫ k∏t hÒp phép quay và phép v‡ t¸ b¨ng lªnh:
\coordinate (A) at ($(I)!k!30:(B)$) . Khi ó ta ˜Òc i∫m A là £nh cıa B
qua viªc th¸ hiªn liên ti∏p phép quay tâm I , góc quay 30 và phép v‡ t¸ tâm I tø
sË k .

• Lßy chân ˜Ìng vuông góc: Lßy i∫m chân ˜Ìng vuông góc k¥ t¯ A ∏n c§nh
BC
\coordinate (H) at ($(B)!(A)!(C)$);

Trung tâm GDNN - GDTX Duy Tiên Trang 7


Mˆc lˆc HÂc Tikz theo cách cıa b§n

• Giao i∫m cıa hai ˜Ìng thØng: Giao i∫m cıa hai ˜Ìng thØng i qua AB
và CD

\coordinate (M) at (intersection of A–B and C–D);

I.2.6 Hi∫n th‡ v´n b£n trong Tikz

Hi∫n th‡ tên i∫m khi ch˜a khai báo label:


\node[tùy chÂn] (Tên i∫m) at (TÂa Î i∫m){NÎi dung hi∫n th‡};
VÓi lªnh trên, Tên i∫m là tên khai báo cıa node (dùng ∫ sau này ta v≥ thêm các
Ëi t˜Òng khác liên quan ∏n node). NÎi dung hi∫n th‡ nÎi dung v´n b£n ta c¶n hi∫n
th‡ trong hình v≥.
Ví dˆ:

\begin{tikzpicture}
\node[circle,fill=yellow,draw] (A)
at (0,0){im A};
\node[rectangle,fill=blue!30,draw] i∫m A i∫m B
(B) at (4,0){im B};
\draw[->] (A)--(B);
\end{tikzpicture}

Chú ˛ r¨ng coordinate và node có th∫ dùng bßt c˘ chÈ nào (trong các lªnh \draw ,
\fill ho∞c \path ).

I.2.7 V≥ i∫m

Ta xác ‡nh mÎt i∫m trên hình v≥ b¨ng tÂa Î. Trên hª Oxy ta xác ‡nh i∫m b¨ng
tÂa Î (x; y). Còn trên hª tÂa Î c¸c ta xác ‡nh i∫m b¨ng (↵ : r).
Ví dˆ ta muËn v≥ i∫m A(3; 1) ta dùng lªnh sau: \draw (3,-1) circle (1pt);
Chú ˛ r¨ng tÂa Î cıa i∫m trong Tikz ng´n cách hoành Î và tung Î bi dßu
"ph©y" (,) ch˘ không ph£i dßu "chßm ph©y" (;) nh˜ ta th˜Ìng vi∏t trong v´n b£n. K∏t
thúc lªnh v≥ luôn b¨ng dßu "chßm ph©y" (;).
Ta cÙng có th∫ v≥ i∫m b¨ng lªnh \draw (60:2) circle (1pt); . Khi ó ta s≥ v≥
˜Òc i∫m B sao cho OB = 2 và góc gi˙a OB và Ox là 60o .
Hãy xem ví dˆ d˜Ói ây:

Trung tâm GDNN - GDTX Duy Tiên Trang 8


HÂc Tikz theo cách cıa b§n Mˆc lˆc

\begin{tikzpicture}[>=stealth]
\draw[step=1,gray,very thin]
(-3,-3) grid (3,3);
\draw[->](-3,0)--(3,0);
\draw[->](0,-3)--(0,3); y
\draw[dashed] (0,1)--(2,1)--(2,0);
\draw (2,1) circle (0.04);
A
\draw (3,0) node[above]{$x$} (0,3)
node[left]{$y$} (0,0) node[below x
left]{$O$}; O
\draw (-60:2) circle (0.04);
60o
\draw (-60:2) -- (0,0);
\draw (2,1) node[above right]{$A$} B
(-60:2) node[below right]{$B$};
\draw[->](-60:4mm) arc (-60:0:4mm);
\draw (-30:5mm)node[below
right]{$-60^{o}$};
\end{tikzpicture}

Chú ˛ r¨ng lªnh v≥ i∫m là \draw (point) circle (radius); trong ó point
là tÂa Î i∫m và radius là bán kính i∫m (th˜Ìng dùng là 1pt ho∞c 2pt).

I.2.8 o§n thØng, ˜Ìng gßp khúc

Chúng ta bi∏t r¨ng ∫ v≥ o§n thØng t¯ A ∏n B ta dùng lªnh \draw (A)–(B); .


Tuy nhiên, n∏u v≥ mÎt ˜Ìng gßp khúc t¯ A ∏n B rÁi ∏n C ti∏p tˆc ∏n D thì ta có
th∫ dùng lªnh ròi r§c t¯ng o§n. Nh˜ v™y s≥ gây khó kh´n vì ph£i gõ nhi∑u k˛ t¸. Ta
có mÎt sË cách sau ây ∫ v≥ mÎt ˜Ìng gßp khúc:

• Dùng liên ti∏p –: Ta có th∫ dùng

\draw (A)–(B)–(C)–(D);

Cách dùng này th˜Ìng ˜Òc dùng khi ta ã khai báo (ho∞c bi∏t tÂa Î) tßt c£ 4
i∫m A, B, C, D. Ví dˆ:

Trung tâm GDNN - GDTX Duy Tiên Trang 9


Mˆc lˆc HÂc Tikz theo cách cıa b§n

\begin{tikzpicture}
\draw[gray!50,thin,opacity=.5]
(-1,-1) grid (5,5);
\path
C
(0:0) coordinate (A)
(2,1) coordinate (B)
(3,4) coordinate (C)
(4,1) coordinate (D)
; B
\draw (A)--(B)--(C)--(D);
D
\foreach \x/\g in A
{A/180,B/120,C/90,D/0}
\fill[black](\x) circle (1pt)
($(\x)+(\g:3mm)$) node{\x};
\end{tikzpicture}

• Dùng –++: ChØng h§n ta mÓi có i∫m A và B và bi∏t r¨ng i∫m C có tÂa Î
d§ng C(xB + xo ; yB + yo ), khi ó ta s≥ dùng lªnh cÎng tÂa Î:

\draw (A)–(B)–++(xo,yo);

Cái hay cıa Tikz là viªc cÎng tÂa Î này s≥ ˜Òc cÎng dÁn. Sau khi v≥ ∏n C theo
nh˜ lªnh trên ta hoàn toàn có th∫ ti∏p tˆc v≥ thêm o§n thØng cÎng ti∏p tÂa Î
t¯ i∫m C ∏n i∫m D

CÙng nh˜ trên, ta thßy i∫m C(3, 4) = (2 + 1; 1 + 3), nh˜ v™y C(xB + 1; yB + 3) và
t˜Ïng t¸ D(xC + 1; yC 3). Ta s≥ dùng lªnh v≥:

\draw (A)–(B)–++(1,3)–++(1,-3);

Trung tâm GDNN - GDTX Duy Tiên Trang 10


HÂc Tikz theo cách cıa b§n Mˆc lˆc

\begin{tikzpicture}
\draw[gray!50,thin,opacity=.5]
(-1,-1) grid (5,5);
\path
C
(0:0) coordinate (A)
(2,1) coordinate (B)
(3,4) coordinate (C)
(4,1) coordinate (D)
; B
\draw (A)--(B)--++(1,3)--++(1,-3);
D
\foreach \x/\g in A
{A/180,B/120,C/90,D/0}
\fill[black](\x) circle (1pt)
($(\x)+(\g:3mm)$) node{\x};
\end{tikzpicture}

• Dùng [turn]: Khi ta v≥ o§n thØng t¯ i∫m A ∏n i∫m B rÁi, ta muËn v≥ ti∏p
∏n i∫m C xác ‡nh b¨ng cách quay mÎt góc ' và Î dài BC = d nào ó ta dùng
[turn] theo cú pháp:
\draw (A)–(B)–([turn]góc: Î dài);
ChØng h§n trong ví dˆ v≥ tam giác ∑u c§nh 2 ta có th∫ dùng [turn] nh˜ sau:

\begin{tikzpicture}
\draw[gray!50,thin,opacity=.5]
(-1,-1) grid (5,5);
\draw (0,0)coordinate (A)
--(2,0) coordinate(B)
--([turn]120:2) coordinate(C) C
--cycle;
\foreach \x/\g in {A/180,B/0,C/90}
\fill[black](\x) circle (1pt) A B
($(\x)+(\g:3mm)$) node{\x};
\end{tikzpicture}

Nh˜ v™y, ta hoàn toàn có th∫ rút ng≠n các lªnh v≥ b¨ng viªc k∏t hÒp nhi∑u cách v≥
o§n thØng ∫ có mÎt ˜Ìng gßp khúc tùy ˛.

I.2.9 ˜Ìng tròn, Ellipse. Cung tròn, cung Ellipse

Ta bi∏t lªnh v≥ ˜Ìng tròn là \draw (Tâm) circle (bán kính); . Tuy nhiên, ∫
v≥ ˜Ìng tròn khi bi∏t tâm A và i qua i∫m B thì làm th∏ nào? Th¸c t∏ trong pgf

Trung tâm GDNN - GDTX Duy Tiên Trang 11


Mˆc lˆc HÂc Tikz theo cách cıa b§n

có lªnh lßy kho£ng cách gi˙a hai i∫m, tßt nhiên kho£ng cách này tính b¨ng Ïn v‡ pt
( i∫m £nh) nên khó trong viªc tính toán. Vßn ∑ t§o lªnh lßy kho£ng cách gi˙a hai i∫m
b¨ng thông sË phù hÒp vÓi Ïn v‡ cıa Tikz ta s≥ ∑ c™p sau. Nh˜ng ∫ v≥ ˜Ìng tròn
bi∏t tâm và i qua mÎt i∫m ta có th∫ dùng lªnh:
\draw (I) let \p1=($(I)-(A)$) in circle ({veclen(\x1,\y1)});
Khi ó ta có ˜Ìng tròn tâm I và i qua i∫m A.
Nh˜ v™y ta cÙng có lªnh t˜Ïng t¸ ∫ v≥ Ellipse có bán trˆc lÓn a, bán trˆc nh‰ b và
tâm I(xI ; yI ) nh˜ sau:
\draw (I) ellipse ({a} and {b});
Ngoài ra, ta có th∫ v≥ các cung tròn, cung Ellipse n∏u bi∏t i∫m xußt phát cung,
i∫m k∏t thúc cung (tính b¨ng góc) và các bán kính t˜Ïng ˘ng cıa nó.
\draw (A) arc (g1:g2:r); s≥ v≥ T¯ i∫m A mÎt cung tròn có góc xußt phát là
g1, góc k∏t thúc là g2 và bán kính r. Ví dˆ d˜Ói ây v≥ t¯ gËc tÂa Î mÎt cung tròn
xußt phát t¯ góc 180 Î ∏n góc k∏t thúc 90 Î vÓi bán kính b¨ng 2.

\begin{tikzpicture}
\draw[gray!50,thin,opacity=.5]
(-1,-1) grid (5,5);
\draw (0,0) arc (180:90:2);
\end{tikzpicture}

T˜Ïng t¸, n∏u dùng lªnh \draw (A) arc (180:0:{2} and {1}); s≥ ˜Òc cung
Ellipse t¯ i∫m A vÓi góc xußt phát là 180 Î, góc k∏t thúc 0 Î bán trˆ lÓn là 2 và bán
trˆc nh‰ là 1.

\begin{tikzpicture}
\draw[gray!50,thin,opacity=.5]
(-1,-1) grid (5,5);
\draw (0,0) arc (180:90:2);
\draw (0,0) arc (180:0:{2} and {1});
\end{tikzpicture}

Trung tâm GDNN - GDTX Duy Tiên Trang 12


HÂc Tikz theo cách cıa b§n Mˆc lˆc

I.2.10 Các d§ng ˜Ìng cong khác

• to[tùy chÂn]: V≥ mÎt ˜Ìng cong t¯ i∫m A ∏n i∫m B vÓi tùy chÂn nào ó. Ta
có các lo§i tùy chÂn bend left, bend right ho∞c out, in.

\draw (A) to[bend left=30] (B); cho ta mÎt ˜Ìng cong t¯ A ∏n B sao
cho góc i ra cıa ˜Ìng cong t¯ i∫m A là 30 và góc i vào cıa ˜Ìng cong t§i
i∫m B là 180 30 = 150 . ˜Ìng cong này s≥ cân x˘ng c£ hai phía Ëi vÓi A và
B . Chú ˛ r¨ng bend right cÙng giËng nh˜ v™y nh˜ng ˜Ìng cong s≥ £o ng˜Òc
l§i. Ta hãy xem ví dˆ sau:

\begin{tikzpicture}
\draw[gray!50,thin,opacity=.5]
(-1,-1) grid (5,5);
\path (0,0) coordinate (A) (4,3)
coordinate (B);
B
\draw[blue] (A)to[bend left=150]
(B);
\draw[red] (A)to[bend right=30]
(B);
\foreach \x/\g in
{A/-150,B/60}\fill[black] A
(\x) circle (1pt)
($(\x)+(\g:3mm)$)node{$\x$};
\end{tikzpicture}

Ta cÙng có th∫ dùng tùy chÂn out, in ∫ xác ‡nh các góc ra t§i i∫m A và góc
vào t§i i∫m B cıa ˜Ìng cong. Cách dùng này cho ta thßy các góc ra, vào không
cân x˘ng:

Trung tâm GDNN - GDTX Duy Tiên Trang 13


Mˆc lˆc HÂc Tikz theo cách cıa b§n

\begin{tikzpicture}
\draw[gray!50,thin,opacity=.5]
(-1,-1) grid (5,5);
\path (0,0) coordinate (A) (4,3)
coordinate (B); B
\draw[blue] (A)to[out=90,in=30]
(B);
\draw[red] (A)to[out=0,in=90] (B);
\foreach \x/\g in
{A/-150,B/60}\fill[black]
A
(\x) circle (1pt)
($(\x)+(\g:3mm)$)node{$\x$};
\end{tikzpicture}

Nh˜ v™y, tùy thuÎc vào tính chßt cıa ˜Ìng cong ∫ ta có th∫ l¸a chÂn tùy chÂn
phù hÒp cho hình v≥ cıa mình.

• Parabola[tùy chÂn]: v≥ mÎt o§n Parabol t¯ i∫m A ∏n i∫m B . Tùy chÂn


bend at end ho∞c không chÂn gì. Ho∞c ta cÙng có th∫ dùng parabola bend vÓi
ba i∫m A, B, C . Khi ó ta ˜Òc o§n Parabol xußt phát t¯ A, ønh B và k∏t thúc
C

Ta xem ví dˆ sau ∫ hi∫u rõ tùy chÂn bend at end:

\begin{tikzpicture}
\draw[gray!50,thin,opacity=.5]
(-1,-1) grid (5,5);
\path (0,0) coordinate (A) (2,3)
coordinate (B); B
\draw [blue](A) parabola (B);
\draw[red] (A) parabola[bend at
end] (B);
\foreach \x/\g in
{A/-150,B/60}\fill[black]
A
(\x) circle (1pt)
($(\x)+(\g:3mm)$)node{$\x$};
\end{tikzpicture}

Và ví dˆ d˜Ói ây ∫ hi∫u v∑ parabola bend

Trung tâm GDNN - GDTX Duy Tiên Trang 14


HÂc Tikz theo cách cıa b§n Mˆc lˆc

\begin{tikzpicture}
\draw[gray!50,thin,opacity=.5]
(-1,-1) grid (5,5);
\path (0,0) coordinate (A) (3,3)
coordinate (B) (4,1) B
coordinate (C);
\draw [blue](A) parabola bend (B)
(C);
\foreach \x/\g in C
{A/-150,B/60,C/-90}\fill[black]
A
(\x) circle (1pt)
($(\x)+(\g:3mm)$)node{$\x$};
\end{tikzpicture}

• plot coordinates: V≥ ˜Ìng cong qua nhi∑u i∫m (mÎt ˜Ìng gßp khúc qua các
i∫m mÎt cách m∑m m§i). Ta có th∫ s˚ dˆng cú pháp:
\draw[smooth] plot coordinate{ TÂa Î các i∫m};
Ví dˆ nh˜ ˜Ìng cong sau ây:

\begin{tikzpicture}
\draw[gray!50,thin,opacity=.5]
(-1,-1) grid (5,5);
\draw[blue,smooth] plot
coordinates{(0,0) (1,0) (2,1)
(2,2) (3,1) (4,3)};
\end{tikzpicture}

• controls: V≥ ˜Ìng cong qua i∫m A và B vÓi các “l¸c ©y”. Ta có cú pháp:
\draw (A).. controls (C) and (D) .. (B);
Trong cú pháp trên, A là i∫m b≠t ¶u, B là i∫m k∏t thúc cıa ˜Ìng cong. i∫m
C và D chø tham gia vÓi t˜ cách là “l¸c ©y” ∫ kéo cho ˜Ìng nËi t¯ A ∏n B có
Î cong mà không hi∫n th‡ trên hình v≥.

I.2.11 Lßy mÎt i∫m trên ˜Ìng cong, ti∏p tuy∏n cıa ˜Ìng cong

VÓi mÎt ˜Ìng cong bßt k˝, ta có th∫ khai báo ∫ lßy mÎt i∫m trên ˜Ìng cong
theo tø lª vÓi cú pháp:

Trung tâm GDNN - GDTX Duy Tiên Trang 15


Mˆc lˆc HÂc Tikz theo cách cıa b§n

\draw D§ng ˜Ìng cong coordinate[pos=tø lª](A);


ChØng h§n lßy mÎt i∫m A trên mÎt ˜Ìng controls nh˜ sau:
\draw (0,0)..controls +(0:1) and +(60:2)..(1,2) coordinate[pos=.5](A);
Khi ó ta lßy ˜Òc i∫m A là i∫m chính gi˙a cıa ˜Ìng cong này.
Ví dˆ:

\begin{tikzpicture}
\draw[gray!50,thin,opacity=.5]
(-1,-1) grid (5,5);
\draw[red] (0,0)..controls +(0:1)
and +(60:2)..(1,2) C
coordinate[pos=.5](B);
B
\draw (0,0) to[out=90,in=180]
coordinate[pos=.5](C) (3,4) ;
\foreach \x in {A,B,C}\fill[black] A
(\x) circle (1pt)
($(\x)+(90:3mm)$)node{$\x$};
\end{tikzpicture}

Tßt nhiên lßy mÎt i∫m trên các ˜Ìng có sÆn ph˜Ïng trình (ho∞c ‡nh d§ng quen
thuÎc nh˜ ˜Ìng tròn ho∞c ellipse) thì ta dùng cách khác s≥ tiªn lÒi hÏn rßt nhi∑u b¨ng
viªc dùng \path ... coordinate ... ho∞c \draw ... coordinate ...
ChØng h§n lßy i∫m A trên ˜Ìng tròn và i∫m B trên ellipse nh˜ sau:

\begin{tikzpicture}
\draw[gray!50,thin,opacity=.5]
(-1,-1) grid (6,5);
\path
(0,0) arc (180:60:2) coordinate (A)
(0,0) arc (180:150:{3} and {1})
coordinate (B)
(0,0) arc (180:30:{3} and {1})
coordinate (C)
A
;
\draw
B C
(0,0) arc (180:0:2)
(0,0) arc (180:0:{3} and {1})
;
\foreach \x in {A,B,C}\fill[black]
(\x) circle (1pt)
($(\x)+(90:3mm)$)node{$\x$};
\end{tikzpicture}

Trung tâm GDNN - GDTX Duy Tiên Trang 16


HÂc Tikz theo cách cıa b§n Mˆc lˆc

Viªc v≥ các ˜Ìng ti∏p tuy∏n cıa ˜Ìng tròn và Ellipse ta có th∫ c´n c˘ vào mËi
quan hª hình hÂc (và ph˜Ïng pháp tÂa Î trong m∞t phØng) ∫ ho§ch ‡nh cách v≥ cho
hÒp l˛. Tßt nhiên Tikz cÙng cung cßp th˜ viªn decoration.markings ∫ v≥ các ˜Ìng
cát tuy∏n và ti∏p tuy∏n cıa ˜Ìng cong t§i mÎt i∫m bßt k˝. Nh˜ng viªc s˚ dˆng th˜
viªn này chø nên dùng khi quá c¶n thi∏t (vÓi d§ng ˜Ìng cong không quen thuÎc mà
h¶u h∏t ta rßt hi∏m khi dùng trong các hình v≥ các bài toán, và viªc s˚ dˆng th˜ viªn
này khá ph˘c t§p và khó nhÓ) nên tôi không ∑ c™p  ây.

Tr l§i vÓi ˜Ìng tròn và Ellipse, ∫ v≥ ti∏p tuy∏n cıa ˜Ìng tròn tâm O bán kính
r t§i i∫m M nào ó, ta luôn thßy ti∏p tuy∏n vuông góc vÓi bán kính OM . Nh˜ v™y chø
c¶n quay tâm O quanh M mÎt góc 90 ho∞c 90 ˜Òc i∫m T thì ngay l™p t˘c ta có
M T là ti∏p tuy∏n cıa ˜Ìng tròn rÁi.

T˜Ïng t¸ nh˜ v™y, vÓi mÎt Ellipse có bán trˆc lÓn a, bán trˆc nh‰ b ta có ngay ph˜Ïng
x2 y 2 x.x y.y
trình Ellipse d§ng 2
+ 2 = 1 và khi ó ti∏p tuy∏n t§i M (x , y ) có d§ng 2 + 2 = 1.
a b a b
V™y n∏u có hoành Î (ho∞c tung Î ti∏p i∫m) thì ta có ˜Òc ph˜Ïng trình ti∏p tuy∏n
cıa Ellipse, và nh˜ v™y viªc v≥ ti∏p tuy∏n chØng qua chø là v≥ Á th‡ mÎt hàm sË mà
thôi.

Ví dˆ nh˜ hình v≥ mÎt hình nón có áy bi∫u diπn bi mÎt Ellipse có bán trˆc x là
a = 3, bán trˆc nh‰ là b = 1 và chi∑u cao h4. MuËn v≥ chính xác ˜Òc không Ïn gi£n
bi n∏u bình th˜Ìng b§n s≥ v≥

\begin{tikzpicture}[line
join=round, line cap=round]
\def\a{3}
\def\b{1}
\def\h{4}
\draw[dashed] (180:\a) arc
(180:0:{\a} and {\b});
\draw
(90:\h)--(180:\a)arc(180:360:{\a}
and {\b})--cycle;
\end{tikzpicture}

Nhìn hình v≥ trên ta thßy không ˜Òc µp vì hai ˜Ìng sinh hai bên c≠t ˜Ìng nét
˘t. Hình s≥ không “th™t” l≠m. MuËn hình ˜Òc “th™t” hÏn, b§n ph£i tính toán sao cho
các ˜Ìng sinh ti∏p xúc vÓi Ellipse. Ta s≥ ∞t ra bài toán v≥ ti∏p tuy∏n cıa Ellipse i
qua ønh cıa hình nón.

B§n v≥ phác hình ra ∫ phân tích và tìm cách v≥:

Trung tâm GDNN - GDTX Duy Tiên Trang 17


Mˆc lˆc HÂc Tikz theo cách cıa b§n

M
B A
O

Trong hình v≥ trên, ta thßy i∫m A(a; 0), B( a; 0), S(0; h), O(0; 0) và i∫m M (x ; y ).
Vßn ∑ là xác ‡nh ˜Òc tÂa Î i∫m M . Chú ˛ r¨ng trong hình hÂc tÂa Î phØng n∏u
x2 y2
i∫m, ph˜Ïng trình Ellipse là + = 1 và ph˜Ïng trình ti∏p tuy∏n cıa Ellipse t§i
a2 b2
x.x y.y
M (x ; y ) là 2 + 2 = 1. Vì ti∏p tuy∏n i qua i∫m S(0; h) nên ta thay tÂa Î i∫m
a b
b2
S vào ph˜Ïng trình ti∏p tuy∏n s≥ suy ra ˜Òc y = . T¯ ó ta có th∫ tính ˜Òc x .
h
M∞t khác, trong hª tÂa Î c¸c, tÂa Î i∫m \
8 M (' : r) vÓi ' = AOM thì hoành Î và
<x = a cos '
tung Î i∫m M ˜Òc tính theo công th˘c: . T¯ ây ta có th∫ tính góc
:y = b sin '
y b
' = arcsin = arcsin ∫ lßy góc v≥ các cung Ellipse c¶n thi∏t. Nh˜ v™y ta có th∫ hoàn
b h
thiªn code v≥ mÎt cách linh ho§t và Ïn gi£n:

\begin{tikzpicture}[line
join=round,line
cap=round,font=\scriptsize]
\def\a{3}
\def\b{1}
\def\h{4}
\pgfmathsetmacro\g{asin(\b/\h)}
S
\pgfmathsetmacro\xo{\a *cos(\g)}
\pgfmathsetmacro\yo{\b *sin(\g)}
\draw[dashed]
(\xo,\yo) arc (\g:180-\g:{\a} and
{\b})
(180:\a)node[left]{$B$} --(0:\a)
M
node[right]{$A$} (90:\h) B A
O
node[above]{$S$} --(0:0)
node[below left]{$O$}
--(\xo,\yo)node[above right]{$M$}
;
\draw (90:\h)--(-\xo,\yo) arc
(180-\g:360+\g:{\a} and
{\b})--cycle;
\end{tikzpicture}

VÓi code v≥ trên, b§n có th∫ thay Íi tùy ˛ bán trˆc x, bán trˆc y và chi∑u cao h

Trung tâm GDNN - GDTX Duy Tiên Trang 18


HÂc Tikz theo cách cıa b§n Mˆc lˆc

cıa hình nón thì Tikz luôn tính ˜Òc cho ta các i∫m M mÎt cách linh ho§t và t¸ Îng.
Hình nón s≥ µp nh˜ “th™t”. Ng˜Òc l§i, n∏u hình nón cho i∫m ti∏p xúc M (bi∏t góc ')
b
thì ta thay Íi ph¶n khai báo h b¨ng ' và l§i tính h b¨ng công th˘c h = là xong.
sin '

I.2.12 Giao i∫m cıa các ˜Ìng

Trong v≥ hình khoa hÂc, ∞c biªt là các bài toán Hình hÂc, viªc s˚ dˆng giao i∫m cıa
các ˜Ìng là th˜Ìng g∞p. VÓi giao cıa hai ˜Ìng thØng ( o§n thØng) tôi ã trình bày 
ph¶n các phép toán tÂa Î. VÓi hai ˜Ìng bßt k˝ ta c¶n s˚ dˆng th˜ viªn intersections.

∫ s˚ dˆng th˜ viªn này, ta ph£i gÂi th˜ viªn (ngay sau khi khai báo gói Tikz và
tr˜Óc \begin{document} ) b¨ng cú pháp:

\usetikzlibrary{intersections}

MÈi ˜Ìng s≥ ˜Òc ∞t mÎt cái tên cho ˜Ìng b¨ng

\path[name path=tên ˜Ìng] D§ng ˜Ìng ;

ho∞c \draw[name path=tên ˜Ìng] D§ng ˜Ìng ; . Chú ˛ r¨ng n∏u s˚ dˆng \path
thì Tizk chø ∞t tên ˜Ìng mà không v≥ ra, còn n∏u s˚ dˆng \draw thì ˜Ìng ˜Òc
v≥ ra trên hình v≥.

Khi ó n∏u có hai ˜Ìng ã ˜Òc ∞t tên là c1 và c2 b¨ng cú pháp:

\path[name intersections={of=c1 and c2}] (intersection-1) coordinate (A);

VÓi nh˙ng c∞p ˜Ìng chø có mÎt giao i∫m thì nh˜ v™y, n∏u c∞p ˜Ìng có nhi∑u giao
i∫m hÏn thì ta s˚ dˆng intersection-1, intersection-2, . . . cho ∏n h∏t s≥ khai báo ˜Òc
tßt c£ các i∫m.

B§n có th∫ tham kh£o code lßy giao i∫m 2 ˜Ìng tròn nh˜ d˜Ói ây:

Trung tâm GDNN - GDTX Duy Tiên Trang 19


Mˆc lˆc HÂc Tikz theo cách cıa b§n

\begin{tikzpicture}
\draw[name path=ab] (-1.5,0)
coordinate (A) --(5.75,0)
coordinate (B);
\draw[name path=circ1] (0,0) circle
(2);
\draw[name path=circ2] (2.5,0)
circle (3);
\path[name intersections={of=circ1
and circ2}]
(intersection-1) coordinate (M)
(intersection-2) coordinate (N)
; M
\path[name intersections={of=circ1
and ab}]
(intersection-1) coordinate (P) A J P IB
(intersection-2) coordinate (Q)
;
\path[name intersections={of=circ2 Q
N
and ab}]
(intersection-1) coordinate (I)
(intersection-2) coordinate (J)
;
\fill[blue] (M)node[right]{$M$}
circle (1pt);
\fill[red] (N)node[right]{$N$}
circle (1pt);
\foreach \x in
{A,B,P,Q,I,J}\fill[black] (\x)
circle (1pt)+(90:2mm)node{$\x$};
\end{tikzpicture}

B§n ∫ ˛ thßy i∫m Q không hi∫n th‡ úng chÈ. Th™t v™y. Vì ˜Ìng tròn circ1 chø
c≠t o§n AB t§i mÎt i∫m nên i∫m Q Tikz s≥ lßy ng®u nhiên. i∑u này rßt quan trÂng
khi b§n c¶n tìm giao i∫m cıa các ˜Ìng b¨ng th˜ viªn intersections b§n c¶n bi∏t sË
giao i∫m “th¸c” cıa hai ˜Ìng ó. (giao i∫m nhìn thßy).

I.2.13 Môi tr˜Ìng scope, clip, node và pic

• Môi tr˜Ìng scope:

Tikz cung cßp môi tr˜Ìng scope vÓi cú pháp

Trung tâm GDNN - GDTX Duy Tiên Trang 20


HÂc Tikz theo cách cıa b§n Mˆc lˆc

\begin{scope}
...
\draw ...
...
\end{scope}

Trong môi tr˜Ìng scope MÂi lªnh v≥, lªnh khai báo chø có tác dˆng trong môi
tr˜Ìng này, khi thoát ra kh‰i scope thì các i∫m ã khai báo , các giá tr‡ ã gán,
tên ˜Ìng ã gán . . . trong scope không còn tác dˆng. Vì v™y c¶n s˚ dˆng linh
ho§t môi tr˜Ìng này.

• Lªnh clip

i ôi vÓi scope là lªnh \clip D§ng ˜Ìng kín; . clip dùng ∫ c≠t các ph¶n
th¯a khi v≥ hình ∫ hình v≥ úng theo ˛ v≥. ChØng h§n c¶n v≥ n˚a mÎt cung tròn
cıa ˜Ìng tròn màu xanh n¨m trong ˜Ìng màu ‰ nh˜ sau:

\begin{tikzpicture}
\draw[red] (0,0) circle (1.5);
\draw[blue] (2,0) circle (2);
\end{tikzpicture}

Ta có th∫ clip nh˜ sau:

\begin{tikzpicture}
\draw[red] (0,0) circle (1.5);
\clip (0,0) circle (1.5);
\draw[blue] (2,0) circle (2);
\end{tikzpicture}

∫ ˛ r¨ng lªnh clip s≥ có tác dˆng t¯ v‡ trí ∞t nó cho ∏n \end{tikzpicture}


nên ta c¶n k∏t hÒp scope. ChØng h§n trong hình v≥ trên ta l§i muËn v≥ ti∏p o§n
thØng n´m bên ngoài ˜Ìng tròn màu ‰ nh˜ng n∏u ∫ bình th˜Ìng clip ta s≥
không thßy hi∫n th‡.

Trung tâm GDNN - GDTX Duy Tiên Trang 21


Mˆc lˆc HÂc Tikz theo cách cıa b§n

\begin{tikzpicture}
\draw[red] (0,0) circle (1.5);
\clip (0,0) circle (1.5);
\draw[blue] (2,0) circle (2);
\draw (1,0)--(4,0);
\end{tikzpicture}

V™y thì ta ph£i ˜a viªc v≥ cung tròn ó vào trong môi tr˜Ìng scope ∫ có th∫
ti∏p tˆc v≥ thêm

\begin{tikzpicture}
\draw[red] (0,0) circle (1.5);
\begin{scope}
\clip (0,0) circle (1.5);
\draw[blue] (2,0) circle (2);
\end{scope}
\draw (1,0)--(4,0);
\end{tikzpicture}

Kˇ thu™t này rßt h˙u dˆng trong viªc v≥ các k˛ hiªu góc trong bài toán Hình hÂc.
[ trong tam giác ABC ta có th∫ làm nh˜ sau:
ChØng h§n muËn th∫ hiªn ABC

\begin{tikzpicture}
\draw (0,0) coordinate (B)
--(4,0) coordinate (C) --
(1,3) coordinate (A) --cycle;
\begin{scope}
\clip (B)--(A)--(C);
\draw[fill=yellow] (A) circle
(.25);
\end{scope}
\end{tikzpicture}

• node
Nh˜ tôi ã trình bày, lªnh \node ... at ... { Ëi t˜Òng hi∫n th‡}; ho∞c
dùng kép ki∫u nh˜
\draw ... node{ Ëi t˜Òng hi∫n th‡}; ˜Òc dùng khá nhi∑u khi v≥ hình. –
ây ta tìm hi∫u thêm v∑ node ∫ s˚ dˆng cho th™t s¸ linh ho§t.
Ëi t˜Òng hi∫n th‡ trong các lªnh trên (gÂi t≠t là node) ˜Òc Tikz khá tho£i
mái. Nó có th∫ là bßt c˘ lªnh nào trong LATEX ch˘ không riêng gì bfseries Tikz.

Trung tâm GDNN - GDTX Duy Tiên Trang 22


HÂc Tikz theo cách cıa b§n Mˆc lˆc

ChØng h§n b§n muËn v≥ mÎt hình bài toán th¸c t∏ có hình cây d¯a, mà viªc v≥
cây d¯a tËn quá nhi∑u thÌi gian, b§n có th∫ include hình png cây d¯a ó vào trong
hình v≥ Tikz.

\begin{tikzpicture}
\draw (-3,0) -- (3,0);
\path (0,0) node[above]
{\includegraphics[scale=.3]
{caydua}};
\end{tikzpicture}

Hay nhßt là trong node có th∫ ˜a vào bßt c˘ th˘ gì mà LATEX chßp nh™n ˜Òc,
k∫ c£ môi tr˜Ìng tikzpictue

\begin{tikzpicture}
\draw (-3,0) -- (3,0);
\path (0,3) node{
\begin{tikzpicture}
\draw[fill=orange ] (0,0) circle
(1);
\end{tikzpicture}
};
\end{tikzpicture}

• pic

T˜Ïng t¸ nh˜ node, pic cÙng là mÎt trong nh˙ng d§ng có sÆn cıa Tikz. S˚ dˆng
cú pháp:
\draw (tÂa Î) pic{tên pic};
Khi ó ta s≥ có hình £nh cıa pic vào úng tÂa Î ã chø ra. Vßn ∑ là các pic này
 âu? tên pic là gì? Ta không c¶n quan tâm quá nhi∑u ∏n các pic có sÆn cıa
Tikz vì chı tâm cıa ng˜Ìi t§o ra Tikz là ∫ ng˜Ìi dùng t¸ t§o pic khi c¶n thi∏t.
ChØng h§n b§n muËn v≥ mÎt m§ch iªn, mÈi iªn tr là mÎt hình ch˙ nh™t. Trong
khi m§ch iªn cıa ta có nhi∑u iªn tr, mÈi l¶n v≥ iªn tr l§i ph£i v≥ mÎt hình
ch˙ nh™t thì th™t vßt v£. Ta s≥ t§o pic b¨ng cú pháp:
\tikzset{dientro/.pic={\draw(-.4,-.1)rectangle (.4,.1);}}

Trung tâm GDNN - GDTX Duy Tiên Trang 23


Mˆc lˆc HÂc Tikz theo cách cıa b§n

Sau ó ta s˚ dˆng pic này tho£i mái nh˜ sau:

\begin{tikzpicture}
\tikzset{dientro/.pic={
\draw(-.4,-.1) rectangle
(.4,.1);}}
\draw
(0,0) pic[local bounding box=R1]
{dientro}
(3,0) pic[local bounding box=R2]
{dientro}
(1.5,3) pic[local bounding
box=R3] {dientro}
;
\draw (1.75,0) --(R2) --(4,0)
--(4,3) --(R3) --(-1,3)
--(-1,0) --(R1) --(1.25,0);
\end{tikzpicture}

Nhân ây, ∫ v≥ m§ch iªn tôi cÙng ∑ c™p ∏n mÎt cách v≥ hai c§nh liên ti∏p cıa
mÎt hình ch˙ nh™t xác ‡nh bi hai ønh Ëi nhau (th˜Ìng dùng khi gióng tÂa Î
trong Á th‡ hàm sË và v≥ m§ch iªn) nh˜ sau:
\draw (A)-|(B); \draw (A)|-(B);
ChØng h§n ∫ rút ng≠n lªnh v≥ m§ch iªn trên, tôi s≥ dùng:

\begin{tikzpicture}
\tikzset{dientro/.pic={
\draw(-.4,-.1) rectangle
(.4,.1);}}
\draw
(0,0) pic[local bounding box=R1]
{dientro}
(3,0) pic[local bounding box=R2]
{dientro}
(1.5,3) pic[local bounding
box=R3] {dientro}
;
\draw (1.75,0) --(R2) --(4,0)
|-(R3) -|(-1,0) --(R1)
--(1.25,0);
\end{tikzpicture}

Trung tâm GDNN - GDTX Duy Tiên Trang 24


HÂc Tikz theo cách cıa b§n Mˆc lˆc

I.3 Các tùy chÂn th˜Ìng dùng


I.3.1 Tùy chÂn chung

Tùy chÂn cıa Tikz là các tham sË ¶u vào n¨m trong c∞p [ ...]  ngay sau mÈi môi
tr˜Ìng, lªnh v≥. VÓi tßt c£ các lªnh v≥, môi tr˜Ìng ta có mÎt sË tùy chÂn chung nh˜
sau:

• color=: L¸a chÂn màu cho Ëi t˜Òng. VÓi tùy chÂn này th˜Ìng thì ta không c¶n
nh™p color= tên màu mà ta chø c¶n nh™p tên màu là Tikz cÙng t¸ hi∫u ˜Òc.
Tên màu có th∫ là yellow, blue, red, orange, pink, . . . HÏn n˙a, viªc xác ‡nh
màu có thêm tùy chÂn red!50 ta hi∫u là Î ‰ 50%, blue!20 là Î xanh 20% . . .
Ngoài ra có có mÎt sË tùy chÂn left color=, right color=, bottom color=, top
color=, ball color= . . .

• rotate=: Quay Ëi t˜Òng quanh gËc tÂa Î mÎt góc nào ó, Ïn v‡ góc  ây là
“ Δ ch˘ không dùng radian.

• shift=: T‡nh ti∏n Ëi t˜Òng theo mÎt véc tÏ nào ó.


Cˆ th∫ hÏn ta có xshift= và yshift= là cách t‡nh ti∏n Ëi t˜Òng theo chi∑u ngang
ho∞c chi∑u dÂc. Chú ˛ khi dùng xshift ho∞c yshift thì các thông sË ˜a vào ph£i
có Ïn v‡ Î dài (pt, mm, cm, . . . )

• scale=: Tø lª hi∫n th‡ Ëi t˜Òng.


T˜Ïng t¸ nh˜ trên ta cÙng có xscale= lßy Ëi x˘ng Ëi t˜Òng qua trˆc tung và
yscale lßy Ëi x˘ng Ëi t˜Òng qua trˆc hoành.

• font=: ChÂn cÔ ch˙ hi∫n th‡ trong hình v≥ (tùy chÂn này th˜Ìng dùng cho các
môi tr˜Ìng tikzpicture và scope ∫ cÔ ch˙ thËng nhßt trong cùng mÎt hình v≥)

• line join, line cap: Tùy chÂn này th˜Ìng dùng cho môi tr˜Ìng tikzpicture. line
join=round ∫ các o§n gßp khúc m∑m m§i hÏn, line cap=round ∫ các ¶u
mút o§n thØng ˜Òc bo tròn.

• line width=: Î dày nét v≥, vÓi tùy chÂn này n∏u Ïn v‡ là i∫m £nh (pt) thì
thông sË ¶u vào không c¶n Ïn v‡. N∏u ta muËn dùng Ïn v‡ Î dài khác thì c¶n
nh™p thông sË i kèm Ïn v‡ (mm, cm, . . . )

• smooth: T§o Î trÏn cho nét v≥, th˜Ìng dùng vÓi v≥ Á th‡ và i kèm lªnh \draw
ho∞c \fill

• samples=: Ta hi∫u r¨ng v≥ ˜Ìng cong trong Tikz ho∞c bßt c˘ ph¶n m∑m nào
b£n chßt v®n là chia nh‰ ˜Ìng cong thành các o§n thØng ∫ v≥ liên ti∏p các
o§n thØng này. samples quy ‡nh i∑u ó. samples càng lÓn thì sË i∫m chia
càng nhi∑u, khi ó ˜Ìng cong càng µp hÏn. Tuy nhiên i kèm vÓi nó là viªc tính

Trung tâm GDNN - GDTX Duy Tiên Trang 25


Mˆc lˆc HÂc Tikz theo cách cıa b§n

toán cıa Tikz s≥ t´ng lên làm ch™m quá trình biên d‡ch. Khuyên dùng vÓi thông
sË samples=100 là v¯a ph£i (1 Ïn v‡ ˜Òc chia thành 100 i∫m nh‰).

• ->: Dùng v≥ các o§n thØng ( o§n cong) có ‡nh h˜Óng (mÙi tên  cuËi o§n).
Các ki∫u mÙi tên th˜Ìng dùng là stealth, latex, . . . .

• opacity=: Tùy chÂn này chø ‡nh Î hòa trÎn gi˙a các lÓp Ëi t˜Òng (layer) trong
mÎt hình v≥. GiËng nh˜ các ph¶n m∑m làm viªc vÓi hình £nh khác, Tikz v≥ hình
theo các lÓp, lÓp sau è lÓp tr˜Óc, opacity s≥ hòa trÎn các Ëi t˜Òng vào vÓi nhau.
Th˜Ìng dùng vÓi \fill

• double: Tùy chÂn v≥ nét ôi trong lªnh v≥ \draw . Ta hoàn toàn có th∫ tùy chønh
kho£ng cách gi˙a các nét ôi b¨ng tùy chÂn double distance

• rounded corrners=: Tùy chÂn làm m∑m Î gßp khúc cıa lªnh \draw và
\fill
Ta hoàn toàn có th∫ dùng cùng lúc các tùy chÂn này, Tikz s≥ th¸c hiªn l¶n l˜Òt t¯ng
tùy chÂn cho ∏n h∏t khi v≥ hình. Chú ˛ vÓi các tùy chÂn v∑ các phép quay, t‡nh ti∏n,
v‡ t¸ (rotate, shift, scale) khi dùng trong lªnh \draw ho∞c \fill s≥ không th¸c
hiªn n∏u các i∫m ã ˜Òc ‡nh nghæa t¯ tr˜Óc.

I.3.2 VÓi node, pic

VÓi pic và node ngoài nh˙ng tùy chÂn chung còn có mÎt sË tùy chÂn riêng.
pic[local bounding box=A] ... là tùy chÂn ∫ khai báo v‡ trí ∞t pic là A, dùng
∫ v≥ các ˜Ìng nËi các i∫m mÎt cách hÒp l˛.
sloped: Dùng vÓi node khi ta node theo mÎt ˜Ìng nào ó (có th∫ cong ho∞c thØng).
Khi ó v´n b£n trong node s≥ nghiêng theo Î nghiêng cıa ˜Ìng.
midway: Dùng vÓi node nh˜ trên, v‡ trí ∞t cıa node s≥  gi˙a ˜Ìng ó. Th˜Ìng
dùng khi ∞t các kho£ng cách gi˙a hai i∫m.
Ngoài ra, còn rßt nhi∑u tùy chÂn khác trong các lªnh cıa Tikz mà tôi ch˜a liªt kê
 ây, bi nó ít ˜Òc dùng. B§n hoàn toàn có th∫ tra c˘u pgfmabual.pdf có ¶y trên
internet.

I.3.3 Vòng l∞p foreach

Vòng l∞p foreach th¸c chßt là lªnh cıa LATEX. Nh˜ng nó rßt h˙u dˆng khi v≥ hình
b¨ng Tikz. Ta có th∫ hi∫u vòng l∞p này nh˜ sau:
\foreach tên bi∏n in {t™p hÒp bi∏n} {lªnh th¸c thi;}
Viªc s˚ dˆng foreach ti∏t kiªm cho ta viªc gõ quá nhi∑u dòng lªnh giËng nhau, chø
thay Íi mÎt vài thông sË. ChØng h§n b§n muËn v≥ 20 o§n thØng song song và cùng
có Î dài b¨ng 2 t¯ các i∫m trên trˆc tung, có tung Î t´ng d¶n .1 Ïn v‡. N∏u b§n
v≥ l¶n l˜Òt thì ph£i gõ úng 20 dòng lªnh \draw (...)–++(0:2); Nh˜ng vÓi foreach
b§n chø c¶n mÎt dòng lªnh, Tikz (th¸c chßt là LATEX) s≥ thay b§n làm viªc ó:

Trung tâm GDNN - GDTX Duy Tiên Trang 26


HÂc Tikz theo cách cıa b§n Mˆc lˆc

\begin{tikzpicture}
\foreach \i in {1,...,20}\draw
(0,.1*\i)--++(0:2);
\end{tikzpicture}

– ây, ta thßy hoành Î luôn là 0, tung Î s≥ t´ng d¶n, vÓi i = 1 thì tung Î là
.1, vÓi i=2 thì tung Î là .2, . . . B§n thßy cú pháp chÈ lªnh th¸c thi  trên ˜Òc ∞t
trong ngo∞c nhÂn còn trong ví dˆ thì không? N∏u nh˜ chø c¶n làm mÎt viªc duy nhßt
(mÎt lªnh duy nhßt) thì không c¶n c∞p ngo∞c nhÂn ó, nh˜ng n∏u t¯ hai lªnh tr lên
b§n c¶n ph£i có ngo∞c nhÂn, n∏u không foreach chø th¸c thi cho b§n mÎt lªnh ¶u tiên
li∑n sát nó mà thôi.
foreach còn hÏn th∏, ta có th∫ dùng vòng l∞p này lÁng nhau ∫ v≥ (hi∫n th‡ mÎt
b£ng). ChØng h§n:
a15 a25 a35 a45 a55 a65 a75
\begin{tikzpicture}
\foreach \i in {1,...,7}{ a14 a24 a34 a44 a54 a64 a74
\foreach \j in {1,...,5}
a13 a23 a33 a43 a53 a63 a73
\path (\i,\j) node{$a_{\i \j}$};
} a12 a22 a32 a42 a52 a62 a72
\end{tikzpicture}
a11 a21 a31 a41 a51 a61 a71

Qu£ là tiªn lÒi, n∏u không dùng foreach b§n s≥ ph£i dùng 35 node vÓi 35 tÂa Î
và 35 v´n b£n. Tßt nhiên, khi dùng foreach b§n c¶n chú ˛ ∏n nh˙ng công th˘c mang
tính tÍng quát. ChØng h§n, cÙng b£ng trên nh˜ng tôi muËn hi∫n th‡ aij = ß + ⌘ thì tôi
s≥ làm:
6 7 8 9 10 11 12
\begin{tikzpicture}
\foreach \i in {1,...,7}{ 5 6 7 8 9 10 11
\foreach \j in {1,...,5}
\pgfmathsetmacro{\ht}{int(\i+\j)} 4 5 6 7 8 9 10
\path (\i,\j) node{\ht};
3 4 5 6 7 8 9
}
\end{tikzpicture} 2 3 4 5 6 7 8

Ti∏p tˆc nghiên c˘u v∑ foreach. Trong cái t™p hÒp bi∏n ta có th∫ có nhi∑u cách
˜a vào. ChØng h§n vÓi giá tr‡ bi∏n là các con sË có quy lu™t (chØng h§n các sË cách
∑u nhau nh˜  ví dˆ trên) thì ta nh™p vào d§ng .1,.3,...,5 s≥ ˜Òc danh sách là
.1, .3, .5, .7 . . . 5 sao cho các bi∏n cách nhau .2. Còn n∏u là các sË nguyên thì chø c¶n
nh™p vào sË ¶u tiên và sË cuËi cùng nh˜ trong ví dˆ. N∏u các giá tr‡ bi∏n không có
quy lu™t ho∞c ‡nh d§ng không ph£i các con sË thì sao? Ta buÎc ph£i liªt kê các giá tr‡
bi∏n trong ó.

Trung tâm GDNN - GDTX Duy Tiên Trang 27


Mˆc lˆc HÂc Tikz theo cách cıa b§n

V™y còn tên bi∏n? B§n có th∫ ∞t tên bi∏n mÎt cách tho£i mái, hÏn n˙a ta có th∫
dùng nhi∑u bi∏n cùng lúc nh˜ ví dˆ d˜Ói ây:

\begin{tikzpicture}
\foreach \x/\col in {1/red, 2/blue,
3/orange, 4/pink, 5/yellow,
6/gray} \fill[\col] (\x,0)
rectangle +(.5,2);
\end{tikzpicture}

I.3.4 T§o macro

Macro là gì? Nó là mÎt lªnh do ng˜Ìi dùng t§o ra, b£n chßt là ∫ th¸c hiªn mÎt
t™p hÒp các lªnh cıa LATEX theo ki∫u “gõ t≠t” trên word b¨ng Unikey mà thôi. Cú pháp
t§o lªnh:

\def \name{Các lªnh th¸c thi}

Nh˜ v™y, b§n có th∫ ∞t name tho£i mái, miπn sao ¯ng trùng vÓi các lªnh có sÆn
cıa LATEX và Tikz ∫ kh‰i gây lÈi.

Ph¶n lªnh th¸c thi b§n có th∫ ˜a vào bßt c˘ lªnh v≥ nào cıa Tikz. Và khi nào
s˚ dˆng ∏n t™p hÒp các lªnh ó b§n chø viªc \name là xong.

Tßt nhiên n∏u chø có th∏ thì t§o macro cÙng không tiªn lÒi mßy. Macro còn có th∫
˜a thông sË ¶u vào và thông sË ¶u ra. ChØng h§n vÓi macro t§o lªnh v≥ k˛ hiªu góc
vuông và k˛ hiªu góc th˜Ìng mà tôi ã t¯ng t§o:

Trung tâm GDNN - GDTX Duy Tiên Trang 28


HÂc Tikz theo cách cıa b§n Mˆc lˆc

\begin{tikzpicture}
\def\khvuong(#1,#2,#3){
\path
($(#2)!2mm!(#1)$) coordinate (#2#1)
($(#2)!2mm!(#3)$) coordinate (#2#3)
;
\draw[blue] (#2#1)
--($(#2#1)+(#2#3)-(#2)$)--(#2#3);
}
\def\khgoc(#1,#2,#3){
\begin{scope}
\clip (#1)--(#2)--(#3);
\draw[red] (#2) circle (2mm);
\end{scope}
}
\draw (0,0) coordinate(B)
--(5,0) coordinate (C)
--(1,4) coordinate (A)
--cycle;
\khvuong(B,A,C)
\khgoc(A,B,C)
\end{tikzpicture}

HÏn n˙a, macro còn lo cho ta c£ thông sË ¶u ra. ChØng h§n ta muËn tìm tâm nÎi
ti∏p cıa mÎt tam giác, ta cÙng có th∫ xây d¸ng mÎt macro nh˜ sau:

Trung tâm GDNN - GDTX Duy Tiên Trang 29


Mˆc lˆc HÂc Tikz theo cách cıa b§n

\begin{tikzpicture}
\def\tamnoitiep(#1,#2,#3)(#4){
\path
($($(#2)!2mm!(#1)$)!0.5!($(#2)!2mm!(#3)$)$)
coordinate (#2a)
($($(#1)!2mm!(#2)$)!0.5!($(#1)!2mm!(#3)$)$)
coordinate (#1a)
(intersection of #2-- #2a and
#1--#1a) coordinate (#4);
}
\draw (0,0) coordinate(B)
--(5,0) coordinate (C)
--(1,4) coordinate (A)
--cycle;
\tamnoitiep (A,B,C)(I)
\path ($(A)!(I)!(B)$) coordinate
(M);
\draw (I) let \p1=($(I)-(M)$) in
circle ({veclen(\x1,\y1)});
\end{tikzpicture}

Nh˜ v™y, b§n có th∫ t¸ t§o ra các macro ∫ v≥ theo ˛ b§n và m§ch t˜ duy hình hÂc
cıa b§n ∫ v≥ mà không mßt quá nhi∑u thÌi gian. V∑ b£n chßt, gói lªnh tkz-euclide
˜Òc xây d¸ng vÓi các ˛ t˜ng nh˜ th∏ này (ng˜Ìi ta gÂi ó là các gói th˘ cßp cıa
Tikz). VÓi bÎ môn V™t l˛ ho∞c Hóa hÂc cÙng có nh˙ng gói th˘ cßp cıa Tikz nh˜ v™y.

I.3.5 V≥ hình không gian (gi£ 3d)

Khi v≥ hình không gian (b£n chßt là v≥ 2d hình chi∏u song song cıa mÎt hình không
gian trên m∞t phØng), ta th˜Ìng có mÎt tham sË ¶u vào là góc nghiêng (góc nhìn
hình). B§n c¶n nh≠c l§i v∑ các quy t≠c bi∫u diπn cıa mÎt hình không gian trên m∞t
phØng. B§n hãy nhÓ ∏n các quy t≠c v∑ tính song song, tø lª các o§n thØng song song
˜Òc gi˙ nguyên. Thêm n˙a, b§n c¶n nhÓ ∏n quy t≠c nét li∑n, nét ˘t.

ChØng h§n b§n muËn bi∫u diπn mÎt hình tròn, b§n s≥ v≥ mÎt Ellipse. V™y thì b§n
hoàn toàn có th∫ bi∫u diπn mÎt hình trˆ Ïn gi£n nh˜ sau:

Trung tâm GDNN - GDTX Duy Tiên Trang 30


HÂc Tikz theo cách cıa b§n Mˆc lˆc

\begin{tikzpicture}
\def\a{2}
\def\b{1}
\def\h{3}
\draw[dashed] (180:\a) arc
(180:0:{\a} and {\b});
\draw (-\a,\h)--(-\a,0) arc
(180:360:{\a} and {\b})--(\a,\h)
(90:\h) ellipse ({\a} and {\b});
\end{tikzpicture}

B§n muËn mÎt hình hÎp ch˙ nh™t?

\begin{tikzpicture}
\def\a{3}
\def\b{1}
\def\g{30}
\def\h{2}
\path
(0:0) coordinate (A)
--++(\g:\b) coordinate (B)
--++(0:\a) coordinate (C)
--++(\g-180:\b) coordinate (D)
\foreach \x in {A,B,C,D}{
($(\x)+(90:\h)$) coordinate (\x
’)}
;
\draw[dashed] (B’)--(B)--(A)
(B)--(C);
\draw
(A)--(D)--(D’)--(A’)--cycle
(A’)--(B’)--(C’)--(D’)
(D)--(C)--(C’)
;
\end{tikzpicture}

B§n muËn mÎt hình c¶u:

Trung tâm GDNN - GDTX Duy Tiên Trang 31


Mˆc lˆc HÂc Tikz theo cách cıa b§n

\begin{tikzpicture}
\def\r{2}
\draw[dashed]
(180:\r) arc (180:0:{\r} and
{.3*\r})
(90:\r) arc (90:-90:{.3*\r} and
{\r})
;
\draw
(0:0) circle (\r)
(180:\r) arc (180:360:{\r} and
{.3*\r})
(90:\r) arc (90:270:{.3*\r} and
{\r})
;
\end{tikzpicture}

Trung tâm GDNN - GDTX Duy Tiên Trang 32


HÂc Tikz theo cách cıa b§n Mˆc lˆc

II B£ng xét dßu - B£ng bi∏n thiên - Á


th‡ hàm sË

II.1 B£ng xét dßu

Ta hãy hình dung b£ng xét dßu gÁm 2 dòng, mÎt dòng có giá tr‡ cıa bi∏n x, mÎt
dòng có giá tr‡ là dßu cıa f (x) (ho∞c f 0 (x)) trong bài kh£o sát và v≥ Á th‡ hàm sË. Ta
có th∫ dùng foreach ∫ v≥ b£ng này mÎt cách rßt Ïn gi£n. ChØng h§n mÎt b£ng nh˜
sau:

\begin{tikzpicture}[scale=.75]
\draw[thin,opacity=.5] (-1,-2) grid
(9,1);
\foreach \i/\x in
{0/x,2/-\infty,4/-1,6/2,8/+\infty} x 1 1 +1
2
\path (\i,.5) node{$\x$};
f (x) 0 + 0
\foreach \i/\x in
{0/f(x),3/-,4/0,5/+,6/0,7/-}
\path (\i,-.5) node{$\x$};
\draw (-.5,0)--(8.5,0)
(.75,1)--(.75,-1);
\end{tikzpicture}

Tßt nhiên trong code trên b§n ã hình dung trong ¶u các v‡ trí các i∫m c¶n ∞t
giá tr‡. Công viªc này b§n hoàn toàn có th∫ làm úng nh˜ viªc b§n v≥ b¨ng bút trên
gißy v™y. MÎt cách khác là b§n có th∫ s˚ dˆng gói tkz-tab ∫ v≥ mà tôi s≥ trình bày 
ph¶n sau ây.

II.2 B£ng bi∏n thiên

Cßu trúc cıa b£ng bi∏n thiên gÁm ba dòng. Dòng giá tr‡ x, dòng giá tr‡ §o hàm
0
f (x) và dòng f (x). Nh˜ v™y ta c¶n ∏n gói Tkz-tab ∫ làm viªc này.

Khai báo gói b¨ng lªnh sau: \usepackage{tkz-tab}


Sau khi khai báo gói rÁi, ta b≠t ¶u v≥ b£ng bi∏n thiên nhé:

Trung tâm GDNN - GDTX Duy Tiên Trang 33


Mˆc lˆc HÂc Tikz theo cách cıa b§n

\begin{tikzpicture}
\tkzTabInit[nocadre,lgt=1.5,espcl=2,deltacl=.5]
{$x$/0.7, $f’(x)$/0.7, $f(x)$/2}
{$-\infty$,$-1$,$1$,$2$,$+\infty$}
\end{tikzpicture}

x 1 1 1 2 +1
f 0 (x)

f (x)

Nh˜ v™y ta ã có khung cıa mÎt b£ng bi∏n thiên. N∏u b§n có ˛ ‡nh thay Íi thì c˘
th˚ thay Íi t¯ng thông sË mÎt ∫ ki∫m tra s¸ thay Íi cıa hình v≥. Nh˜ v™y b§n s≥
hi∫u thêm ˜Òc ˛ nghæa cıa các thông sË.
\tkzTabInit[tùy chÂn]{ Ëi sË dòng}{ Ëi sË cÎt}

• Tùy chÂn [Tùy chÂn] gÁm các thông sË ¶u vào nh˜ sau:

Tùy chÂn M∞c ‡nh fi nghæa


espcl 2 cm Î rÎng cÎt
lgt 2 cm Î rÎng cÎt th˘ nhßt
deltacl 0.5 cm Î rÎng cÎt mÎt và cÎt cuËi cùng có ˜Ìng k¥ cuËi
lw 0.4 pt Nét k¥ b£ng
nocadre false Không có ˜Ìng k¥ quanh ngoài b£ng
color false M¶u b£ng có hay không
colorC white M¶u cÎt th˘ nhßt
colorL white M¶u hàng th˘ nhßt
colorT white M¶u bên trong b£ng
colorV white M¶u cıa các bi∏n trong b£ng

• { Ëi sË dòng} : Quy ‡nh b£ng cıa mình có bao nhiêu dòng. Trong ví dˆ trên
b§n thßy ta nh™p vào là {$x$ / 0.7, $f’(x)$ / 0.7, $f(x)$ /2} . i∑u ó
có nghæa b£ng có 3 dòng gÁm dòng x vÓi Î cao là 0.7, dòng f 0 (x) vÓi Î cao là 0.7
và dòng f (x) vÓi Î cao là 2. B§n có th∫ thay Íi các Î cao và giá tr‡ này ∫ có
mÎt b£ng nh˜ ˛.

• { Ëi sË cÎt} : Quy ‡nh b£ng có bao nhiêu cÎt. Trong ví dˆ trên ta có:
{$-\infty$,$-1$,$1$,$2$,$+\infty$} . Nh˜ v™y b£ng cıa ta gÁm các thông
sË ( dòng x) l¶n l˜Òt t¯ trái qua ph£i là 1, 1, 2 và +1.

Trung tâm GDNN - GDTX Duy Tiên Trang 34


HÂc Tikz theo cách cıa b§n Mˆc lˆc

\tkzTabLine{Giá tr‡ dòng} : ∫ nh™p thông sË vào các dòng trong b£ng bi∏n
thiên, ta có th∫ s˚ dˆng lªnh này, trong ó Giá tr‡ dòng gÁm các sË liªu c¶n nh™p vào.
Các sË liªu nh™p vào ng´n cách nhau bi dßu , nh˜ trong ví dˆ trên:
\tkzTabLine{,-,z,+,d,-,z,+,} . Các sË liªu này có mÎt sË quy t≠c sau:

Nh™p vào Hi∫n th‡


z cÎt ˘ng xuyên qua sË 0
t ˜Ìng ˘ng ˘t o§n
d K¥ hai ˜Ìng ˘ng
h Tô ˜Ìng k¥ ô
+ ô mang dßu +
-ô mang dßu -

B§n xem b£ng d˜Ói ây:

\begin{tikzpicture}
\tkzTabInit[nocadre,lgt=1.5,espcl=2,deltacl=.5]
{$x$/0.7, $f’(x)$/0.7, $f(x)$/2}
{$-\infty$,$-1$,$1$,$2$,$+\infty$}
\tkzTabLine{,-,z,+,d,-,z,+,}
\end{tikzpicture}

x 1 1 1 2 +1
f 0 (x) 0 + 0 +

f (x)

\tkzTabVar[Tùy chÂn]{Các Ëi sË} : Dòng lªnh v≥ mÙi tên th∫ hiªn chi∑u bi∏n
thiên. MÈi Ëi sË có d§ng s/e trong ó s quy ‡nh chi∑u mÙi tên, e là giá tr‡ sË ho∞c
bi∫u th˘c (cıa hàm sË).

Nh™p s
+/e Hi∫n th‡ giá tr‡ e  phía trên.
-/e Hi∫n th‡ giá tr‡ e  phía d˜Ói

Và khi ó, vÓi hai thông sË liên ti∏p nhau d§ng s/e ng´n cách nhau bi dßu ,
thì tkz-tab t¸ hi∫u r¨ng chi∑u mÙi tên (chi∑u bi∏n thiên) i nh˜ th∏ nào. ChØng h§n
nh˜ d˜Ói ây:
\tkzTabVar{+/$+\infty$ ,-/ $-4$ ,+/$-3$, -/$-4$,+/$+\infty$}
B§n s≥ có mã hoàn chønh cıa b£ng bi∏n thiên nh˜ sau:

Trung tâm GDNN - GDTX Duy Tiên Trang 35


Mˆc lˆc HÂc Tikz theo cách cıa b§n

\begin{tikzpicture}
\tkzTabInit[nocadre,lgt=1.5,espcl=2,deltacl=.5]
{$x$/0.7, $f’(x)$/0.7, $f(x)$/2}
{$-\infty$,$-1$,$1$,$2$,$+\infty$}
\tkzTabLine{,-,z,+,d,-,z,+,}
\tkzTabVar{+/$+\infty$ ,-/ $-4$ ,+/$-3$, -/$-4$,+/$+\infty$}
\end{tikzpicture}

x 1 1 1 2 +1
f 0 (x) 0 + 0 +
+1 3 +1
f (x)
4 4

Ho∞c n∏u dòng f (x), t§i x = 1 cÙng không xác ‡nh thì b§n có th∫ thay b¨ng dòng
lªnh:
\tkzTabVar{+/$+\infty$ ,-/ $-4$ ,+D+/$+\infty$, -/$-4$,+/$+\infty$}

B§n s≥ có ngay k∏t qu£:

\begin{tikzpicture}
\tkzTabInit[nocadre,lgt=1.5,espcl=2,deltacl=.5]
{$x$/0.7, $f’(x)$/0.7, $f(x)$/2}
{$-\infty$,$-1$,$1$,$2$,$+\infty$}
\tkzTabLine{,-,z,+,d,-,z,+,}
\tkzTabVar{+/$+\infty$ ,-/ $-4$ ,+D+/$+\infty$ , -/$-4$,+/$+\infty$}
\end{tikzpicture}

x 1 1 1 2 +1
f 0 (x) 0 + 0 +
+1 +1 +1 +1
f (x)
4 4

Ho∞c s˚ dˆng lªnh:


\tkzTabVar{+/$+\infty$ ,-/ $-4$ ,+D-/$+\infty$/$-\infty$, +/$-4$,-/$-\infty$}

Ta s≥ ˜Òc:

Trung tâm GDNN - GDTX Duy Tiên Trang 36


HÂc Tikz theo cách cıa b§n Mˆc lˆc

\begin{tikzpicture}
\tkzTabInit[nocadre,lgt=1.5,espcl=2,deltacl=.5]
{$x$/0.7, $f’(x)$/0.7, $f(x)$/2}
{$-\infty$,$-1$,$1$,$2$,$+\infty$}
\tkzTabLine{,-,z,+,d,-,z,+,}
\tkzTabVar{+/$+\infty$ ,-/ $-4$ ,+D-/$+\infty$/$-\infty$ , +/$-4$,-/$-\infty$}
\end{tikzpicture}

x 1 1 1 2 +1
f 0 (x) 0 + 0 +
+1 +1 4
f (x)
4 1 1

HÏn th∏ n˙a, n∏u b§n muËn mÎt kho£ng nào ó f 0 (x) ho∞c f (x) không xác ‡nh b¨ng
cách g§ch chéo kho£ng thuÎc dòng ó, b§n có th∫ thay +D b¨ng +H ho∞c H ,...

\begin{tikzpicture}
\tkzTabInit[nocadre,lgt=1.5,espcl=2,deltacl=.5]
{$x$/0.7, $f’(x)$/0.7, $f(x)$/2}
{$-\infty$,$-1$,$1$,$2$,$+\infty$}
\tkzTabLine{,-,z,h,d,-,z,+,}
\tkzTabVar{+/$+\infty$ ,-H/ $-4$ ,D-/$-\infty$ , +/$-4$,-/$-\infty$}
\end{tikzpicture}

x 1 1 1 2 +1
f 0 (x) 0 0 +
+1 4
f (x)
4 1 1

II.3 K∏t hÒp Tikz và tkz-tab v≥ b£ng bi∏n thiên tùy chønh

Khi v≥ b£ng bi∏n thiên cıa các hàm sË th¸c t∏. Trong nhi∑u tr˜Ìng hÒp qu˛ v‡ c¶n
tùy chønh b£ng bi∏n thiên theo ˛ mình. Tßt nhiên trong b£ng bi∏n thiên ó thì hai dòng
x và f 0 (x) h¶u nh˜ không có gì c¶n tùy chønh. Chø c¶n tùy chønh dòng f (x) mà thôi.
∫ tùy chønh dòng f (x), tr˜Óc h∏t ta tìm hi∫u v∑ cách ‡nh nghæa các i∫m trong
b£ng bi∏n thiên. Gói tikz-tab ã ‡nh nghæa các i∫m cÏ b£n cıa b£ng theo v‡ trí nh˜
hình sau:

Trung tâm GDNN - GDTX Duy Tiên Trang 37


Mˆc lˆc HÂc Tikz theo cách cıa b§n

\begin{tikzpicture}
\tkzTabInit[nocadre,lgt=1.5,espcl=3,deltacl=0.5]
{$x$/1, $f’(x)$/1, $f(x)$/2.5}
{$-\infty$,$-1$,$1$,$2$,$+\infty$}
\tkzTabLine{,-,z,-,d,+,z,-,}
\foreach \i in {1,...,5}{
\foreach \j in {1,...,3}{
\draw (N\i\j) node[circle,fill=white,inner sep=0.1]{$N_{\i\j}$};
}
}
\end{tikzpicture}

x 1 1 1 2 +1
N11 N21 N31 N41 N51
f 0 (x) 0 + 0
N12 N22 N32 N42 N52

f (x)

N13 N23 N33 N43 N53

Nh˜ v™y Qu˛ v‡ hoàn toàn có th∫ v≥ tùy ˛ dòng f (x) theo ˛ mình d¸a vào các i∫m
ã ˜Òc ‡nh nghæa Nij . SË i∫m này phˆ thuÎc b£ng cıa qu˛ v‡ dài hay ng≠n (có nhi∑u
giá tr‡ x hay không). ChØng h§n nh˜  b£ng trên, khi ta v≥ chi∑u bi∏n thiên t¯ 1 ∏n
1 là ngh‡ch bi∏n. N∏u bình th˜Ìng v≥ b¨ng lªnh \tkzTabVar thì s≥ v≥ thØng mÎt mÙi
tên t¯ i∫m N12 ∏n i∫m N33 . T§i h§ l§i muËn v≥ ki∫u mÙi tên t¯ +1 ∏n f ( 1) = 2
rÁi ti∏p tˆc l§i v≥ mÙi tên th˘ hai t¯ f ( 1) ∏n f (1) = 4. Nh˜ v™y ta s≥ v≥ b¨ng tikz
thu¶n d¸a vào các i∫m có sÆn:

Trung tâm GDNN - GDTX Duy Tiên Trang 38


HÂc Tikz theo cách cıa b§n Mˆc lˆc

\begin{tikzpicture}
\tkzTabInit[nocadre,lgt=2,espcl=3,deltacl=0.5]
{$x$/1, $f’(x)$/1, $f(x)$/2.5}
{$-\infty$,$-1$,$1$,$2$,$+\infty$}
\tkzTabLine{,-,z,-,d,+,z,-,}
\draw (N12)node[below](A){$+\infty$} ($(N22)!0.5!(N23)$) node (B){$-2$} (N33)
node[above left](C){$-4$};
\draw[-stealth] (A)--(B);
\draw[-stealth] (B)--(C);
\end{tikzpicture}

x 1 1 1 2 +1

f 0 (x) 0 + 0
+1

f (x) 2

Ti∏p theo, qu˛ v‡ muËn v≥ ˜Ìng thØng ˘ng bi∫u diπn hàm sË không xác ‡nh t§i
x = 1. Ta hãy v≥ o§n thØng t¯ N32 ∏n N33 vÓi tham sË double nh˜ sau:
\draw[double] ([yshift=-1mm]N32)–(N33);
Qu˛ v‡ nên chú ˛ [yshift=-1mm]  i∫m N32 chính là ∫n ˜Ìng thØng ˘ng cách v§ch
k¥ ngang 1mm. N∏u qu˛ v‡ không muËn tách rÌi ra thì c˘ viªc b‰ nó i là xong.
Phía bên ph£i cıa b£ng bi∏n thiên, Qu˛ v‡ v®n v≥ bình th˜Ìng hai mÙi tên bi∫u
diπn Áng bi∏n t¯ x = 1 ∏n x = 2 và ngh‡ch bi∏n t¯ x = 2 ∏n +1. Tuy nhiên giá tr‡
f (2) = 3 l§i nh‰ hÏn 2 nên qu˛ v‡ muËn nó thßp hÏn c£ f ( 1) = 2. V™y thì qu˛ v‡
hãy xác ‡nh i∫m ∞t f (2) = 3 b¨ng công th˘c $(N42)!0.75!(N43)$ nh˜ sau:

\draw (N33) node[above right](D){$-\infty$} ($(N42)!0.55!(N43)$)


node(E){$-3$} (N53) node[above](F){$-\infty$};

Chú ˛ r¨ng con sË 0.55  trên qu˛ v‡ có th∫ tùy ˛ chÂn sao cho phù hÒp. HÏn th∏
n˙a là thông sË cıa $\f(x)$/2.5  \tkzTabInit qu˛ v‡ cÙng nên chÂn thay 2.5
b¨ng các thông sË khác ∫ nhìn b£ng hài hòa hÏn ( Î cao cıa dòng f (x)).
CuËi cùng thì qu˛ v‡ v≥ nËt hai mÙi tên còn l§i ∫ hoàn thành b£ng bi∏n thiên:

\draw[-stealth] (D)--(E);
\draw[-stealth] (E)--(F);

K∏t qu£ cuËi cùng, qu˛ v‡ hoàn thành b£ng bi∏n thiên theo tùy chønh cıa mình:

Trung tâm GDNN - GDTX Duy Tiên Trang 39


Mˆc lˆc HÂc Tikz theo cách cıa b§n

\begin{tikzpicture}
\tkzTabInit[nocadre,lgt=2,espcl=3,deltacl=0.5]
{$x$/1, $f’(x)$/1, $f(x)$/2.5}
{$-\infty$,$-1$,$1$,$2$,$+\infty$}
\tkzTabLine{,-,z,-,d,+,z,-,}
\draw (N12)node[below](A){$+\infty$} ($(N22)!0.5!(N23)$) node (B){$-2$} (N33)
node[above left](C){$-4$};
\draw[-stealth] (A)--(B);
\draw[-stealth] (B)--(C);
\draw[double] ([yshift=-1mm]N32)--(N33);
\draw (N33) node[above right](D){$-\infty$} ($(N42)!0.55!(N43)$)
node(E){$-3$} (N53) node[above](F){$-\infty$};
\draw[-stealth] (D)--(E);
\draw[-stealth] (E)--(F);
\end{tikzpicture}

x 1 1 1 2 +1

f 0 (x) 0 + 0
+1

f (x) 2 3
4 1 1

II.4 V≥ b£ng bi∏n thiên b¨ng tikz thu¶n

Viªc v≥ b£ng xét dßu và b£ng bi∏n thiên b¨ng tkz-tab qu£ th¸c cÙng không quá khó
n∏u b§n nhÓ ¶y ı các lªnh và quy t≠c cıa nó. Tßt nhiên nhi∑u khi b§n không th∫ nhÓ
˜Òc các lªnh, tùy chÂn và quy cách cıa tkz-tab thì b§n cÙng hoàn toàn v≥ ˜Òc b£ng
bi∏n thiên b¨ng tikz thu¶n mÎt cách Ïn gi£n. B§n hãy hình dung ra tÂa Î cıa các
i∫m ∞t các thông sË trong b£ng bi∏n thiên và s˚ dˆng khéo léo \foreach là b§n
cÙng có ngay mÎt b£ng bi∏n thiên nh˜ ˛ ( ∞c biªt vÓi nh˙ng b£ng bi∏n thiên có s¸ khác
biªt thông th˜Ìng). ChØng h§n nh˜ b£ng bi∏n thiên sau:

Trung tâm GDNN - GDTX Duy Tiên Trang 40


HÂc Tikz theo cách cıa b§n Mˆc lˆc

\begin{tikzpicture}
\foreach \x/\texn in {0/x,
2/-\infty,4/1,6/+\infty} \path
(\x,3.5)node{$\texn$};
\foreach \x/\texn in
{0/f’(x),3/-,4/0,5/+} \path
(\x,2.5)node{$\texn$}; x 1 1 +1
\foreach \x/\y/\texn in {0/1/f(x),
2/1.5/+\infty,4/.5/-1,6/1.5/+\infty} f 0 (x) 0 +
\path (\x,\y) node(\x){$\texn$}; +1 +1
\draw[-stealth] (2)--(4); f (x)
\draw[-stealth](4)--(6); 1
\draw
(-.5,3)--(6.5,3) (1,4)--(1,0)
(-.5,2)--(6.5,2)
(-.5,4) rectangle (6.5,0)
;
\end{tikzpicture}

Vßn ∑ là b§n xác ‡nh tÂa Î các i∫m sao cho khéo léo ∫ b£ng µp hÏn mà thôi.

II.5 Á th‡ hàm sË


∫ v≥ Á th‡ mÎt hàm sË trong Tikz. Ta ã có lªnh \draw[...] plot ();
Cˆ th∫ lªnh nh˜ sau:
\draw[smooth,samples...] plot[domain=xmin:xmax] (\x ,{f(x)});
trong ó xmin và xmax là các hoành Î xußt phát và k∏t thúc khi v≥ Á th‡
Ta c¶n chú ˛ mÎt sË tham sË sau trong lªnh v≥ Á th‡:

• domain= a:b Tham sË này quy ‡nh cho ta vùng v≥ Á th‡. VÓi giá tr‡ cˆ th∫ cıa a
và b thì Tikz v≥ cho ta ph¶n Á th‡ cıa hàm sË vÓi a  x  b. Viªc xác ‡nh a, b cho
phù hÒp hình v≥ là i∑u rßt c¶n thi∏t ∫ hình v≥ không quá lÓn ho∞c tràn ra ngoài
vùng c¶n v≥.

• smooth N∏u ta không có tham sË này, Á th‡ cıa ta nhìn nh˜ các ˜Ìng gßp khúc
nËi l§i, v≥ rßt xßu và nhìn không ra hª thËng cËng rãnh gì. Nhßt là vÓi các Á th‡ là
˜Ìng cong.

• variable=\x ho∞c variable=\y ‡nh d§ng cho ta v≥ Á th‡ theo bi∏n x hay
bi∏n y . VÓi các Á th‡ thông th˜Ìng thì ta th˜Ìng b‰ qua tham sË này ho∞c s˚ dˆng
variable=\x là chính.

Trung tâm GDNN - GDTX Duy Tiên Trang 41


Mˆc lˆc HÂc Tikz theo cách cıa b§n

• Ngoài ra, mÎt sË tham sË màu (color), Î ™m nét cıa ˜Ìng (line width) ho∞c Î
hòa trÎn (opacity) ... cÙng có th∫ tùy bi∏n ∫ ˜Òc mÎt Á th‡ ˜ng ˛.

HÏn n˙a, qu˛ v‡ cÙng c¶n chú ˛ ∏n cách vi∏t công th˘c hàm sË ∫ Tikz có th∫ hi∫u
2
˜Òc. Ví dˆ nh˜ khi c¶n v≥ Á th‡ hàm sË y = x3 3x + 1 thì ta không vi∏t nh˜ khi
3
vi∏t v´n b£n là \dfrac{2}{3}x^{3}-3x+1 mà ph£i vi∏t (2/3)*(\x)^(3)-3*x+1 .
Nh˜ v™y các dßu phép tính vi∏t bình th˜Ìng, nh˜ng phân sË khi tính toán ta ph£i dùng
phép chia (dßu / ), phép nhân ph£i dùng dßu nhân (dßu * ) và phép lÙy th¯a thì
v®n dùng dßu ^ nh˜ng chú ˛ r¨ng các Ëi t˜Òng này n¨m trong c∞p ngo∞c Ïn () ch˘
không ph£i c∞p { } .

Ta hãy b≠t ¶u v≥ mÎt vài Á th‡ hàm sË quen thuÎc. MÎt o§n lªnh Ïn gi£n nh˜
d˜Ói ây ã v≥ ˜Òc Á th‡ hàm sË y = x4 2x2 + 1:

\begin{tikzpicture}[>=stealth]
\draw[->] (-2,0) --(0,0) node[below
right]{$O$} -- (3,0)
y
node[below]{$x$};
\draw[->](0,-1)--(0,3)
node[right]{$y$};
\draw[smooth,blue,line width=1]
plot[domain=-1.65:1.65] O x
(\x,{(\x)^(4)-2*(\x)^(2)+1});
\draw (0,-1.5) node y = x4 2x2 + 1
{$y=x^{4}-2x^{2}+1$};
\end{tikzpicture}

Qu˛ v‡ cÙng có th∫ th˚ v≥ Á th‡ hàm b™c ba y = x3 3x2 + 3 vÓi màu ‰:

Trung tâm GDNN - GDTX Duy Tiên Trang 42


HÂc Tikz theo cách cıa b§n Mˆc lˆc

\begin{tikzpicture}[>=stealth]
\draw[->] (-2,0) --(0,0) node[below
right]{$O$} -- (3.5,0)
node[below]{$x$}; y
\draw[->](0,-1.25)--(0,4) 3
node[right]{$y$};
\draw[smooth,red,line width=0.75]
plot[domain=-1:3]
(\x,{(\x)^(3)-3*(\x)^(2)+3});
\draw[dashed] (0,-1) 2
node[left]{$-1$} -- (2,-1) -- O x
(2,0) node[above]{$2$}; 1
\draw (0,3) node[above right]{$3$}; y = x3 3x2 + 3
\draw (0.75,-1.5) node
{$y=x^{3}-3x^{2}+3$};
\end{tikzpicture}

T˜Ïng t¸ nh˜ v™y b§n hoàn toàn có th∫ v≥ Á th‡ hàm sË bßt k˝ nào.

II.6 Á th‡ hàm sË trong hª tÂa Î c¸c


Cßu trúc lªnh v≥ Á th‡ hàm sË trong hª tÂa Î c¸c hoàn toàn Ïn gi£n nh˜ sau:

\draw[smooth] plot[domain=0:6.3] (canvas polar cs:angle=\x r,radius= {


r=f(x)});

Trong ó ta chú ˛ ∏n tham sË domain=0: 6.3 chính là góc trong hª tÂa Î c¸c
vÓi Ïn v‡ là rad. Bi∏n \x chính là góc ✓ và hàm sË r = f (x) chính là công th˘c tính
r theo góc ✓. ChØng h§n ta muËn v≥ Á th‡ hàm sË r = cos(3✓) vÓi 0  ✓  ⇡ thì ta dùng
lªnh:

\draw[smooth] plot[domain=0:6.3] (canvas polar cs:angle=\x r,radius=


{cos(3*\x r)});

Khi ó ta s≥ ˜Òc:

\begin{tikzpicture}[>=stealth,scale=5]
\draw[domain=0:pi/3,samples=200,smooth]
plot (canvas polar cs:angle=\x
r,radius= {10*cos(3*\x r)});
\end{tikzpicture}

Trung tâm GDNN - GDTX Duy Tiên Trang 43


Mˆc lˆc HÂc Tikz theo cách cıa b§n

Ngoài ra, ta cÙng có th∫ v≥ Á th‡ hàm sË vÓi hª tÂa Î ∑ các và ph˜Ïng trình tham
8
<x = u(t)
sË bi lªnh v≥ Á th‡ nh˜ sau:
:y = v(t)

\draw [smooth,variable=\t] plot[domain=mint:maxt] ({u(t)},{v(t)});

Trong ó mint và maxt là giá tr‡ nh‰ nhßt, giá tr‡ lÓn nhßt cıa tham sË t cho vùng
c¶n v≥. Bi∫u th˘c u(t) và v(t) chính8là hai bi∫u th˘c hoành Î và tung Î theo t.
<x = cos3 t
ChØng h§n ta v≥ Á th‡ hàm sË trên vùng 0  t  120⇡ nh˜ sau:
:y = sin3 t

\begin{tikzpicture}[>=stealth]
\draw[->](-2,0)--(2,0);
\draw[->](0,-2)--(0,2);
\draw [blue,smooth,variable=\t]
plot[domain=0:120*pi ]
({(cos(\t))^3},{(sin(\t))^3});
\end{tikzpicture}

Trung tâm GDNN - GDTX Duy Tiên Trang 44


HÂc Tikz theo cách cıa b§n Mˆc lˆc

III Tô mi∑n Á th‡ hàm sË vÓi Tikz

Qua quá trình trao Íi cùng các b§n v≥ hình trong và ngoài nhóm TikZ - Asymp-
tote tôi thßy khá nhi∑u v˜Óng m≠c khi các b§n v≥ ph¶n tô mi∑n cıa Á th‡ hàm sË
trong các bài toán tính diªn tích hình phØng và th∫ tích khËi tròn xoay. Chính vì v™y
tôi vi∏t t§m bài vi∏t ng≠n này mong các b§n dπ dàng tháo gÔ khó kh´n khi v≥ hình.

III.1 V≥ Á th‡ hàm sË

Thông th˜Ìng khi v≥ Á th‡ hàm sË, các b§n v®n dùng lªnh:
\draw [samples=100,smooth] plot[domain=0:120*pi] (\x,{\f(\x)});

Trong lªnh trên ây thì smooth quy∏t ‡nh Î trÏn (nhÆn) cıa Á th‡ hàm sË, còn
samples quy∏t ‡nh sË i∫m chia ∫ v≥. Do ó viªc s˚ dˆng tham sË nào cÙng nên l˜u
˛. Thông th˜Ìng nh˙ng hàm a th˘c th˜Ìng g∞p ta chø c¶n dùng smooth là ı, mÎt
sË hàm ∞c biªt có Î gßp khúc cao thì ta c¶n s˚ dˆng samples và t´ng giá tr‡ này ∫
t§o Î cong hÒp l˛ khi zoom hình. Ví dˆ sau ây cho các b§n thßy s¸ khác biªt  hai
hình ∫ giúp b§n l¸a chÂn cho phù hÒp, bi giá tr‡ samples càng cao thì tËc Î biên
d‡ch s≥ t´ng thêm áng k∫:

\begin{tikzpicture}[>=stealth]
\def\f(#1){sqrt(#1+1)}
y
\draw[->] (-3,0)--(0,0)node[below
smooth
right]{$O$}--(4,0)
node[above]{$x$};
\draw[->]
(0,-4)--(0,4)node[left]{$y$};
\draw[smooth,blue, line width=1] x
O p
plot[domain=-1:4](\x,{\f(\x)}) f (x) = x+1
plot[domain=-1:4](\x,{-\f(\x)});
\draw (3,-1)
node[above]{$f(x)=-\sqrt{x+1}$};
\draw[dashed] (3,0)--(3,2)--(0,2);
\draw (3,3) node{\bf smooth};
\end{tikzpicture}

Trung tâm GDNN - GDTX Duy Tiên Trang 45


Mˆc lˆc HÂc Tikz theo cách cıa b§n

\begin{tikzpicture}[>=stealth]
\def\f(#1){sqrt(#1+1)} y
\draw[->] (-3,0)--(0,0)node[below
right]{$O$}--(4,0) samples
node[above]{$x$};
\draw[->]
(0,-4)--(0,4)node[left]{$y$};
\draw[samples=500,blue, line x
width=1] O p
plot[domain=-1:4](\x,{\f(\x)}) f (x) = x+1
plot[domain=-1:4](\x,{-\f(\x)});
\draw (3,-1)
node[above]{$f(x)=-\sqrt{x+1}$};
\draw[dashed] (3,0)--(3,2)--(0,2);
\draw (3,3)node{\bf samples};
\end{tikzpicture}

MÎt i∑u khác n˙a tôi l˜u ˛ các b§n, thông th˜Ìng các b§n hay ∫ domain  ngay
tham sË sau lªnh \draw . i∑u này gây khó kh´n khi ta v≥ hai Á th‡ liên ti∏p ∫ tô mi∑n
(mà tôi s≥ nói  ph¶n sau). Thông th˜Ìng ta nên ∫ domain  sau plot[domain=]
thì s≥ chı Îng hÏn trong viªc quy∏t ‡nh kho£ng v≥ Á th‡ giËng nh˜ hai ví dˆ trên.
Qua kinh nghiªm v≥ Á th‡ hàm sË. Viªc l¸a chÂn domain cÙng c¶n s¸ tinh t∏ nhßt
p
‡nh. ChØng h§n vÓi hàm sË y = 2 x. B§n thông th˜Ìng v≥ Á th‡ hàm sË vÓi domain
=-2:2 t˘c là i∫m xußt phát là bên trái, i∫m k∏t thúc là bên ph£i. Nh˜ng b§n hãy th˚
xem hình d˜Ói ây ∫ thßy s¸ l¸a chÂn domain c¶n s¸ tinh t∏ nh˜ th∏ nào:

\begin{tikzpicture}[>=stealth]
\draw[->] (-3,0)--(0,0)node[below
right]{$O$}--(3,0)
node[above]{$x$};
\draw[samples=500,blue, line
width=1] x
O 2
plot[domain=-2:2](\x,{sqrt(2-\x)});
\draw (2,0)node[below]{$2$};
\end{tikzpicture}

N∏u zoom lên, b§n s≥ thßy t§i i∫m x = 2 Á th‡ b‡ cách trˆc hoành mÎt kho£ng nh‰
m∞c dù trên ph˜Ïng diªn l˛ thuy∏t thì hàm sË v®n xác ‡nh t§i x = 2. L˛ do chính là
cách v≥ cıa Tikz chia thành các kho£ng nh‰ ∫ v≥ các o§n thØng thông qua tham sË
samples nên  mÎt lân c™n nào ó cıa i∫m x = 2 s≥ k∏t thúc viªc v≥ d®n ∏n b‡ ˘t
o§n.

Trung tâm GDNN - GDTX Duy Tiên Trang 46


HÂc Tikz theo cách cıa b§n Mˆc lˆc

∫ gi£i quy∏t vßn ∑ này b§n chø c¶n Íi chi∑u domain. T§i sao l§i v™y? Vì khi Íi
chi∑u domain thì Tikz s≥ v≥ t¯ i∫m b≠t ¶u là x = 2 nên Á th‡ s≥ li∑n nét t¯ ó,
ph¶n cách o§n là ph¶n cuËi cùng t§i mÎt lân c™n cıa x = 2 nên b§n s≥ h¶u nh˜ thßy
không thay Íi t§i x = 2 (vì không v≥ ti∏p Á th‡ n˙a). B§n hãy so sánh code d˜Ói ây
và code phía trên cùng hai hình v≥ ∫ có kinh nghiªm cho b£n thân:

\begin{tikzpicture}[>=stealth]
\draw[->] (-3,0)--(0,0)node[below
right]{$O$}--(3,0)node[above]{$x$};
\draw[samples=500,blue, line
width=1] x
plot[domain=2:-2](\x,{sqrt(2-\x)}); O 2
\draw (2,0)node[below]{$2$};
\end{tikzpicture}

III.2 Tô mi∑n Á th‡ hàm sË

Thông th˜Ìng trong các bài toán, ta có mÎt sË d§ng tô mi∑n Á th‡ nh˜ sau:

• Tô mi∑n Á th‡ hàm sË y = f (x), x = a, x = b và trˆc hoành.

• Tô mi∑n Á th‡ hàm sË giao bi hai Á th‡ hàm sË y = f (x) và y = g(x)

VÓi c£ hai d§ng trên, ta quy v∑ viªc có sÆn các hoành Î ∫ tô mi∑n hay không. VÓi
mˆc ích code càng ng≠n gÂn, Ïn gi£n và ∞c biªt là Î chính xác càng cao thì càng
tËt. MÈi tr˜Ìng hÒp ta có cách gi£i quy∏t cˆ th∫ khác nhau.

III.2.1 Khi ã bi∏t hoành Î các i∫m c™n cıa mi∑n c¶n tô

Khi ã bi∏t hoành Î các i∫m c™n cıa mi∑n c¶n tô, ta dùng lªnh ng≠n gÂn nh˜ sau:
ChØng h§n c¶n tô mi∑n giÓi h§n bi Á th‡ hàm sË y = f (x), y = g(x), x = a và x = b,
khi ó ta s˚ dˆng lªnh:

\draw[smooth] plot[domain=a:b](\x,{f(x)})--plot[domain=b:a](\x,{g(x)})--cycle;

– ây ta ∫ ˛ ¶u bút v≥. Hi∫u Ïn gi£n s≥ là bút v≥ Á th‡ hàm sË f (x) t¯ x = a


∏n i∫m x = b và sau ó v≥ ti∏p Á th‡ hàm sË g(x) t¯ i∫m x = b ∏n x = a. Và nh˜
v™y bút v≥ s≥ i mÎt mi∑n kín ∫ tô màu ˜ng ˛.
x3
Ví dˆ cˆ th∫, chØng h§n tô mi∑n Á th‡ hàm sË y = , x = 1 , x = 2 và trˆc hoành:
3
Trung tâm GDNN - GDTX Duy Tiên Trang 47
Mˆc lˆc HÂc Tikz theo cách cıa b§n

\begin{tikzpicture}[>=stealth]
\def\f(#1){((#1)^2)/3} y
\draw[->] (-3,0)--(0,0) node[below
right]{$O$}--(5,0)
node[above]{$x$};
\draw[->] (0,-4)--(0,4)
node[left]{$y$};
\fill[blue,smooth] (1,0) -- x
plot[domain=1:2] (\x,{\f(\x)}) O1 2
-- (2,0) -- cycle;
\draw[smooth,red, line width=1]
plot[domain=-1:2.5]
(\x,{\f(\x)});
\draw (1,0) node[below left]{$1$}
(2,0) node[below left]{$2$};
\end{tikzpicture}

Nh˜ v™y viªc còn l§i b§n chø c¶n v≥ hai ˜Ìng thØng x = 1 và x = 2 n˙a là viªc tô
mi∑n ã hoàn thành.

MÎt ví dˆ khác là tô mi∑n ph¶n giao hai Á th‡ mà ta có th∫ dπ dàng tìm thßy các
hoành Î giao i∫m b¨ng cách gi£i ph˜Ïng trình f (x) = g(x). ChØng h§n tô mi∑n ph¶n
giÓi h§n bi hai Á th‡ hàm sË y = x + 2 và y = x2

Ta dπ dàng tìm ˜Òc hoành Î giao i∫m cıa hai Á th‡ này là nghiªm ph˜Ïng trình
x = x + 2 ) x = 1 ho∞c x = 2. Khi ó ta th¸c hiªn v≥ Á th‡ y = x2 t¯ x = 1 ∏n
2

x = 2 rÁi ti∏p tˆc v≥ y = x + 2 t¯ x = 2 ∏n x = 1:

Trung tâm GDNN - GDTX Duy Tiên Trang 48


HÂc Tikz theo cách cıa b§n Mˆc lˆc

\begin{tikzpicture}[>=stealth]
\draw[->] (-3,0)--(0,0) node[below
right]{$O$} -- (3,0)
node[above]{$x$};
\draw[->] (0,-4)--(0,4)
node[left]{$y$}; y
\fill[blue,smooth]
plot[domain=-1:2] (\x,{(\x)^2})
-- plot[domain=2:-1] (\x,{\x+2})
-- cycle;
\draw[smooth,red, line width=1]
plot[domain=-1.5:2.5]
x
(\x,{(\x)^2}); 1 2
O
\draw[smooth,red, line width=1]
plot[domain=-1.5:2.5] (\x,{\x
+2});
\draw[dashed] (-1,0)--(-1,1)
(2,0)--(2,4);
\draw (-1,0) node[below left]{$-1$}
(2,0) node[below left]{$2$};
\end{tikzpicture}

Chú ˛ r¨ng các bài toán có th∫ tìm hoành Î giao i∫m nh˜ng hoành Î ó là sË vô
tø ho∞c các sË th™p phân vô h§n. Ta không nên lßy các giá tr‡ xßp xø cıa nó mà hãy gán
cho giá tr‡ ó vào mÎt bi∏n. Khi ó ta hoàn toàn có th∫ dùng bi∏n ó ˜a vào domain
∫ chính xác Á th‡.

ChØng h§n nh˜ hoành Î giao i∫m cıa hai Á th‡ f (x) = x2 và g(x)
p = x+1. Khi p
gi£i
1 5 1+ 5
ph˜Ïng trình f (x) = g(x) ta có hai nghiªm l¶n l˜Òt là x1 = và x2 = .
2 2
N∏u b§n bßm máy tính ∫ lßy xßp xø các con sË ∫ ˜a vào domain d®n ∏n Á th‡
không hoàn toàn chính xác và Áng thÌi viªc nhÓ các con sË dài ngo¨ng ∫ nh™p vào
cÙng làm code cıa b§n bÓt i tính th©m mæ. Gi£i pháp là b§n s≥ gán hai bi∏n a = x1 và
b = x2 sau ó ˜a a, b vào domain

Trung tâm GDNN - GDTX Duy Tiên Trang 49


Mˆc lˆc HÂc Tikz theo cách cıa b§n

\begin{tikzpicture}[>=stealth]
\pgfmathsetmacro{\a}{(-1-sqrt(5))/2}
\pgfmathsetmacro{\b}{(-1+sqrt(5))/2}
\draw[->] (-3,0)--(0,0) node[below
right]{$O$} -- (3,0)
node[above]{$x$};
\draw[->] (0,-4)--(0,4) y
node[left]{$y$};
\fill[blue,smooth]
plot[domain=\a:\b](\x,{(\x)^2})
-- plot[domain=\b:\a]
(\x,{-\x+1}) -- cycle;
\draw[smooth,red, line width=1] x
p p
plot[domain=\a-0.5:\b+0.5] 1 5 1O+ 5
(\x,{(\x)^2}); 2 2
\draw[smooth,red, line width=1]
plot[domain=\a-0.5:\b+0.5]
(\x,{-\x +1});
\draw[dashed] (\a,0) -- (\a,-\a+1)
(\b,0) -- (\b,-\b+1);
\draw (\a,0) node[below]
{$\dfrac{-1-\sqrt{5}}{2}$}
(\b,0) node[below]
{$\dfrac{-1+\sqrt{5}}{2}$};
\end{tikzpicture}

N∏u c£ hai hàm sË ∑u có công th˘c ph˘c t§p mà không ph£i là b™c nhßt nh˜
trên, b§n hãy gán thêm hai bi∏n f a và f b là các tung Î giao i∫m t˜Ïng ˘ng vÓi lªnh
pgfmathsetmacro nh˜ khi gán bi∏n a và b rÁi ˜a các tung dÎ t˜Ïng ˘ng vào i∫m
c¶n v≥.

III.2.2 Tô mi∑n Á th‡ không bi∏t hoành Î giao i∫m

MÎt vßn ∑ ∞t ra là nhi∑u khi ta có hàm sË f (x), hàm sË g(x) nh˜ng viªc gi£i ph˜Ïng
trình f (x) = g(x) g∞p khó kh´n. Khi ó ∏n c£ công th˘c nghiªm ta cÙng chØng có thì
làm th∏ nào? B§n hãy dùng môi tr˜Ìng scope vÓi lªnh clip
MÎt ví dˆ Ïn gi£n là tô mi∑n ph¶n giÓi h§n cıa Á th‡ hàm sË f (x) = x3 và ˜Ìng
tròn có tâm là gËc tÂa Î, bán kính b¨ng 1 ˜Òc ánh dßu X nh˜ hình v≥ sau:

Trung tâm GDNN - GDTX Duy Tiên Trang 50


HÂc Tikz theo cách cıa b§n Mˆc lˆc

\begin{tikzpicture}[x=2cm,y=2cm]
\draw[->] (-1.5,0)--(1.5,0)
node[below]{$x$};
\draw[->] (0,-1.5) --(0,1.5)
node[left]{$y$}; y
\draw plot[domain=-1.1:1.1,smooth] 1 y = x3
(\x,{(\x)^3})
node[below right]{$y=x^3$};
\draw (0,0) circle(1); O X
\path 1 X 1 x
(0,0) node[above left]{$O$}
(1,0) node[below right]{$1$}
(-1,0) node[below left]{$-1$}
1
(0,1) node[above left]{$1$}
(0,-1) node[below left]{$-1$};
\draw (0.75,0.15) node{X}
(-0.75,-0.15)node{X};
\end{tikzpicture}

Bình th˜Ìngpb§n s≥ nghæ ∏n viªc dùng ph˜Ïng trình ˜Ìngptròn x2 + y 2 = 1 ∫ suy


ra hàm sË y = 1 x2 . Tuy nhiên viªc gi£i ph˜Ïng trình x3 = 1 x2 ã quá s˘c b§n.
Ho∞c có th∫ b§n gi£i ˜Òc nh˜ng mßt rßt nhi∑u thÌi gian.

B§n hãy phân tích ph¶n ˜Òc tô mi∑n s≥ n¨m trong ˜Ìng tròn và n¨m  ph¶n giÓi
h§n bi Á th‡ f (x) = x3 vÓi trˆc hoành và ˜Ìng thØng x = 1, x = 1. Khi ó b§n hãy
tô toàn bÎ ph¶n giÓi h§n bi Á th‡ hàm sË f (x) = x3 vÓi các ˜Ìng x = 1, x = 1 và
trˆc hoành. Sau ó c≠t i chø lßy ph¶n n¨m bên trong ˜Ìng tròn:

Trung tâm GDNN - GDTX Duy Tiên Trang 51


Mˆc lˆc HÂc Tikz theo cách cıa b§n

\begin{tikzpicture}[x=2cm,y=2cm]
\draw[->] (-1.5,0)--(1.5,0)
node[below]{$x$};
\draw[->] (0,-1.5) --(0,1.5)
node[left]{$y$}; y
\fill[blue,smooth] (-1,0) --
1 y = x3
plot[domain=-1:1] (\x,{(\x)^3})
-- (1,0) -- cycle;
\draw plot[domain=-1.1:1.1,smooth]
(\x,{(\x)^3}) node[below right] O
1 1 x
{$y=x^3$};
\draw (0,0) circle(1);
\path
(0,0) node[above left]{$O$} 1
(1,0) node[below right]{$1$}
(-1,0) node[below left]{$-1$}
(0,1) node[above left]{$1$}
(0,-1) node[below left]{$-1$};
\end{tikzpicture}

Trung tâm GDNN - GDTX Duy Tiên Trang 52


HÂc Tikz theo cách cıa b§n Mˆc lˆc

\begin{tikzpicture}[x=2cm,y=2cm]
\draw[->] (-1.5,0)--(1.5,0)
node[below]{$x$};
\draw[->] (0,-1.5) --(0,1.5)
node[left]{$y$};
\begin{scope}
\clip (0,0) circle (1); y
\fill[blue,smooth] (-1,0) -- 1 y = x3
plot[domain=-1:1] (\x,{(\x)^3})
-- (1,0) -- cycle;
\end{scope} O
\draw plot[domain=-1.1:1.1,smooth] 1 1 x
(\x,{(\x)^3}) node[below right]
{$y=x^3$};
\draw (0,0) circle(1);
1
\path
(0,0) node[above left]{$O$}
(1,0) node[below right]{$1$}
(-1,0) node[below left]{$-1$}
(0,1) node[above left]{$1$}
(0,-1) node[below left]{$-1$};
\end{tikzpicture}

Và bây giÌ b§n ã thßy thành qu£. B§n chø viªc xem hai code trên b§n ã hi∫u viªc
dùng scope và clip hiªu qu£ nh˜ th∏ nào.
B§n hãy th˚ th¸c hành vÓi các hình v≥ khác xem sao.

III.2.3 S˚ dˆng even odd rule

MÎt cách khác ∫ tô mÎt mi∑n kín là s˚ dˆng tham sË even odd rule. Hi∫u Ïn
gi£n even là chÆn, odd là l¥. Và tham sË even odd rule chính là l¸a chÂn mi∑n tô
không giao nhau cıa các mi∑n kín.
Ví dˆ ta có ba mi∑n kín coi nh˜ ba t™p hÒp A, B và C . Khi bi∫u diπn ba t™p hÒp
này s≥ có các mi∑n giao nhau và không giao nhau. Mi∑n nào thuÎc sË chÆn trong sË ba
t™p hÒp A, B, C thì s≥ không tô và chø tô mi∑n l¥.
Các b§n hãy xem hình d˜Ói ây ∫ hi∫u th∏ nào là mi∑n chÆn (even) và l¥ (odd):

Trung tâm GDNN - GDTX Duy Tiên Trang 53


Mˆc lˆc HÂc Tikz theo cách cıa b§n

\begin{tikzpicture}[scale=0.75]
\fill[blue!50, even odd rule] (0,0)
circle (3) (3,0) circle (3)
1
(3,3) circle (3);
\draw (0,0) circle (3);
2
\draw (3,0) circle (3); 3
\draw (3,3) circle (3); 2
\draw (1,-1)node{2} (4,-2)node{1}
1
(4,1)node{2} (4,4)node{1}
2
(1.5,1.75)node{3}
(0.5,2.5)node{2} (-1,0)node{1}; 1
\end{tikzpicture}

Nhìn hình v≥ trên, các mi∑n là giao cıa sË l¥ mi∑n s≥ ˜Òc tô, các mi∑n là giao cıa
sË chÆn mi∑n không ˜Òc tô. Tác Îng này là do s˚ dˆng lªnh:

\fill[blue!50,even odd rule](0,0) circle (3)


(3,0) circle (3) (3,3) circle (3);

M∞c ‡nh cıa tikz (khi không s˚ dˆng even odd rule) là tô kín mÂi mi∑n k∫ c£ sË
chÆn và sË l¥. Khi ó ta s˚ dˆng khéo léo even odd rule s≥ tô ˜Òc mi∑n ta ˜ng ˛.
Nh˜ v™y, khi tô các mi∑n l¥ thì ta s˚ dˆng even odd rule. V™y muËn tô mi∑n chÆn thì
làm th∏ nào? Ta hãy ánh l¯a Tikz b¨ng cách thêm mÎt mi∑n bao bên ngoài tßt c£ các
mi∑n trên, khi ó các mi∑n ang l¥ s≥ thành chÆn và ng˜Òc l§i. Ho∞c là b§n có th∫ s˚
dˆng mÎt cách khác, t˘c là b§n tô sÆn n∑n, sau ó to các mi∑n l¥ b¨ng white. V™y là
các mi∑n chÆn s≥ ˜Òc tô. Chú ˛ r¨ng muËn dùng thı thu™t ánh tráo này, b§n s≥ ph£i
clip hình bi n∏u không s≥ có nh˙ng mi∑n l¥ mÓi và mi∑n chÆn mÓi nh˜ hình d˜Ói ây
tôi ã thêm mÎt mi∑n mÓi b¨ng lªnh:

\fill[blue!50, even odd rule] (0,0) circle (3) (3,0) circle (3)
(3,3) circle (3) (2,2) circle (7);

Trung tâm GDNN - GDTX Duy Tiên Trang 54


HÂc Tikz theo cách cıa b§n Mˆc lˆc

\begin{tikzpicture}
\fill[blue!50, even odd rule] (0,0) circle (3) (3,0) circle (3) (3,3) circle
(3) (2,2) circle (7);
\draw (0,0) circle (3);
\draw (3,0) circle (3);
\draw (3,3) circle (3);
\draw (1,-1)node{2} (4,-2)node{1} (4,1)node{2} (4,4)node{1} (1.5,1.75)node{3}
(0.5,2.5)node{2} (-1,0)node{1};
\end{tikzpicture}

2
3
2

III.3 Các ki∫u tô mi∑n


B§n thích tô màu các mi∑n thì th¸c hiªn các lªnh fill nh˜ trên ây tôi trình bày, chø
viªc Íi tên màu là b§n ã §t ˜Òc ˛ nguyªn. N∏u b§n không muËn tô mi∑n b¨ng màu
s≠c b§n cÙng có các ki∫u tô mi∑n khác mà Tikz ã thi∏t k∏ sÆn gÂi là pattern.
∫ s˚ dˆng pattern, trong file biên d‡ch b§n c¶n gÂi th˜ viªn này ra b¨ng
\usetikzlibrary{patterns} tr˜Óc \begin{document} .

Trung tâm GDNN - GDTX Duy Tiên Trang 55


Mˆc lˆc HÂc Tikz theo cách cıa b§n

T§i lªnh fill b§n s˚ dˆng nh˜ sau:


\fill[pattern=name pattern] .
MÎt sË l¸a chÂn ki∫u tô:

• horizontal lines

• vertical lines

• north east lines

• north west lines

• grid

• crosshatch

• dots

• crosshatch dots

• fivepointed stars

• sixpointed stars

• bricks

• checkerboard

• checkerboard light gray

• horizontal lines light gray

• horizontal lines gray

• horizontal lines dark gray

• horizontal lines light blue

• horizontal lines dark blue

• crosshatch dots gray

• crosshatch dots light steel blue

Trung tâm GDNN - GDTX Duy Tiên Trang 56


HÂc Tikz theo cách cıa b§n Mˆc lˆc

ChØng h§n,  ví dˆ trên tôi s≥ dùng ki∫u g§ch sÂc:

\begin{tikzpicture}[x=2cm,y=2cm]
\draw[->] (-1.5,0) -- (1.5,0) node[below]{$x$};
\draw[->] (0,-1.5) -- (0,1.5) node[left]{$y$};
\begin{scope}
\clip (0,0) circle (1);
\fill[pattern=north east lines,smooth] (-1,0) -- plot[domain=-1:1]
(\x,{(\x)^3}) -- (1,0) -- cycle;
\end{scope}
\draw plot[domain=-1.1:1.1,smooth] (\x,{(\x)^3}) node[below right]{$y=x^3$};
\draw (0,0) circle(1);
\path
(0,0) node[above left]{$O$}
(1,0) node[below right]{$1$}
(-1,0) node[below left]{$-1$}
(0,1) node[above left]{$1$}
(0,-1) node[below left]{$-1$};
\end{tikzpicture}

y
1 y = x3

O
1 1 x

V™y là b§n ã hoàn thành ˜Òc viªc v≥ tô mi∑n cho các hàm sË trong các bài tích
phân rÁi ó. Chúc b§n có th∫ Ïn gi£n hÏn mÎt ph¶n viªc không h∑ dπ dàng này trong
t˜Ïng lai!

Trung tâm GDNN - GDTX Duy Tiên Trang 57


Mˆc lˆc HÂc Tikz theo cách cıa b§n

IV T˜ duy hình hÂa ∫ v≥ hình

∫ có mÎt hình v≥ khoa hÂc £m b£o Î chính xác, hÏn n˙a l§i µp và code v≥ tËi
˜u. Khuy∏n cáo b§n nên tìm hi∫u v∑ ph˜Ïng pháp t˜ duy và trình t¸ phân tích, tÍng
hÒp các y∏u tË cÏ b£n cıa mÎt hình v≥. T¯ ó b§n s≥ có th∫ v≥ bßt c˘ th˘ gì b§n muËn.
IV.1 Trình t¸ cÏ b£n

B§n hãy tham kh£o sÏ Á sau:

Phân tích
hình £nh

Các thông sË MËi liên quan Yêu c¶u


¶u vào gi˙a các Ëi t˜Òng hi∫n th‡

Î chính xác MËi liên quan Hình £nh Màu s≠c


cıa thông sË cıa thông sË hi∫n th‡ hi∫n th‡

TÂa Î
∞t Ëi t˜Òng

Cách Công th˘c ChÂn lªnh Tùy chÂn


khai báo tính toán v≥ cho lªnh v≥

T§o macro ho∞c


dùng l™p trình
n∏u thßy c¶n thi∏t

So§n th£o code

Ki∫m tra Î chính xác Chønh s˚a code


cıa hình v≥ cho hÒp l˛

K∏t qu£
cuËi cùng

Các b˜Óc khuy∏n cáo trên ây m∞c dù nhìn có v¥ rßt rËi và nhi∑u thao tác. Tuy
nhiên, khi b§n rèn luyªn th˜Ìng xuyên, quá trình phân tích hình v≥ s≥ rßt nhanh, có th∫
chø x£y ra trong mÎt kho£ng thÌi gian rßt ng≠n khi nó ã tr thành thói quen cıa b§n.
Viªc phân tích hình v≥ là i∑u tËi quan trÂng, bi t¯ ó b§n s≥ có th∫ tìm ra ph˜Ïng
pháp v≥ tËi ˜u nhßt cho hình v≥ cıa b§n.

Trung tâm GDNN - GDTX Duy Tiên Trang 58


HÂc Tikz theo cách cıa b§n Mˆc lˆc

IV.2 L¸a chÂn hª tÂa Î hÒp l˛

Viªc v≥ hình b¨ng Tikz là làm viªc vÓi các tÂa Î ( i∫m ∞t các Ëi t˜Òng hình £nh)
và các câu lªnh (lªnh v≥ hình). Nh˜ v™y viªc l¸a chÂn hÒp l˛ khi v≥ hình là rßt c¶n thi∏t.
VÓi mÈi hình v≥, b§n c¶n hình dung v‡ trí ∞t cıa hình. Vì v™y b§n l¸a chÂn gËc tÂa
Î là i∫m nào ∫ thu™n tiªn i∑u khi∫n các tÂa Î ti∏p theo cÙng nên cân nh≠c. M∞t
khác, b§n s≥ s˚ dˆng tÂa Î ∑-các hay tÂa Î c¸c cÙng nên quan tâm. ChØng h§n b§n
muËn v≥ mÎt tam giác vÓi ˜Ìng tròn nÎi (ngo§i ti∏p) b§n s≥ v≥ nh˜ th∏ nào? V≥ ˜Ìng
tròn tr˜Óc hay tam giác tr˜Óc? gËc tÂa Î nên ∞t  âu? . . . VÓi tôi thì tôi s≥ v≥ ˜Ìng
tròn tr˜Óc, và tâm ˜Ìng tròn n¨m úng gËc tÂa Î. Ngay l™p t˘c dùng hª tÂa Î c¸c
thì có ngay ba i∫m n¨m trên ˜Ìng tròn là ba ønh tam giác nÎi ti∏p ˜Ìng tròn. N∏u
b§n v≥ ˜Ìng tròn tr˜Óc, viªc b§n ph£i i tìm tâm, bán kính ˜Ìng tròn ngo§i ti∏p tam
giác s≥ vßt v£ hÏn. Tßt nhiên trong mÎt bài toán tÍng hÒp nhi∑u hÏn n˙a, có th∫ b§n
v®n ph£i l¸a chÂn v≥ tam giác tr˜Óc, bi ba ønh tam giác ˜Òc sinh ra t¯ viªc v≥ các
˜Ìng tr˜Óc ó. Khi ßy b§n s≥ c¶n ∏n viªc t§o và s˚ dˆng macro.

IV.3 S˚ dˆng Macro

Trong nhi∑u hình v≥, viªc s˚ dˆng các th˜ viªn cıa Tizk có th∫ £m b£o v≥ cho b§n
h¶u h∏t các hình. Nh˜ng vßn ∑ l§i là nh˙ng th˜ viªn ó b§n ít khi dùng ∏n nên viªc
nhÓ các câu lªnh, các tùy chÂn cıa th˜ viªn không h∑ Ïn gi£n. Chính vì v™y viªc s˚
dˆng macro hÒp l˛ m∞c dù có v¥ r˜Ìm rà nh˜ng l§i ti∏t kiªm nÏ ron th¶n kinh cıa b§n
mÎt cách áng k∫.
Ho∞c hÏn n˙a, nhi∑u khi hình v≥ có nh˙ng Ëi t˜Òng t˜Ïng t¸ nhau, chø sai khác
mÎt vài thông sË cÏ b£n. V™y b§n hãy t§o macro ∫ tùy bi∏n v¯a Ïn gi£n l§i nhanh
gÂn.
ChØng h§n nh˜ trong sÏ Á  ph¶n trên. Khi v≥ tôi ã hình dung có nhi∑u khung
ch˙ cùng lo§i, i∫m khác biªt là màu n∑n, nÎi dung ch˙, Î lÓn khung và i∫m ∞t nó.
M∞c dù Tikz cÙng có th˜ viªn tùy chÂn node nh˜ng không phong phú b¨ng. V™y tôi
s≥ nghæ ∏n viªc t§o macro cho viªc này, thông sË ¶u vào s≥ là tÂa Î hi∫n th‡, Î lÓn
khung, màu n∑n và nÎi dung ch˙ trong khung . . . . Và tôi ã làm nh˜ th∏.

IV.4 S˚ dˆng vòng l∞p foreach

N∏u trong hình v≥ cıa b§n có nhi∑u tình huËng l∞p i l∞p l§i, b§n cÙng có th∫ s˚
dˆng vòng l∞p foreach ∫ Tikz th¸c hiªn cho b§n. S˚ dˆng hÒp l˛ s≥ ti∏t kiªm thÌi
gian so§n code v≥ và các chi ti∏t £m b£o thËng nhßt trong mÎt hình v≥.
ChØng h§n nh˜ b§n muËn v≥ mÎt bi∫u Á hình cÎt, rõ ràng Tikz có tùy chÂn ybar
∫ v≥ bi∫u Á cÎt nh˜ng không th∫ linh ho§t nh˜ b§n t¸ v≥:

Trung tâm GDNN - GDTX Duy Tiên Trang 59


Mˆc lˆc HÂc Tikz theo cách cıa b§n

ZJ

VS

WX

H-max

SK2

SK1-4

SK1-3

SK1-2

SK1-1

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7

VÓi bi∫u Á trên, b§n chø c¶n t˜ duy mÎt chút là b§n hoàn toàn có th∫ v≥ hàng lo§t
bi∫u Á t˜Ïng t¸ mà chø c¶n thay Íi mÎt vài thông sË.

IV.5 Kˇ n´ng tìm ki∏m


Không ph£i lúc nào b§n cÙng nhÓ ˜Òc tßt c£, có nh˙ng vßn ∑ b§n nhÓ mang
máng, có nh˙ng vßn ∑ b§n ch˜a t¯ng ˜Òc nghe ∏n. Kˇ n´ng tìm ki∏m s≥ giúp b§n
rút ng≠n thÌi gian v≥ hình. Nh˙ng ‡a chø tìm ki∏m tËt nhßt khi v≥ hình cho b§n là còn
pgfmanul.pdf và trang web https://tex.stackexchange.com.
B§n cÙng nên chú ˛ cách tìm ki∏m, c¶n ˜a ra nh˙ng t¯ khóa mßu chËt cho quá
trình tìm ki∏m thu gÂn hÏn ∫ ti∏t kiªm thÌi gian.

Trung tâm GDNN - GDTX Duy Tiên Trang 60


HÂc Tikz theo cách cıa b§n Mˆc lˆc

V Export hình £nh

Khi b§n v≥ hình ∫ so§n tài liªu, tài liªu cıa b§n có nhi∑u hình v≥ code Tikz s≥ làm
ch™m quá trình biên d‡ch. Vì v™y b§n có th∫ biên d‡ch mÈi hình thành mÎt file pdf riêng
∫ \includegraphics hình £nh vào nh¨m c£i thiªn thÌi gian biên d‡ch.
M∞t khác, khi b§n c¶n hình £nh ∫ upload lên web ho∞c insert vào các trình so§n
th£o tài liªu khác (chØng h§n nh˜ MS Word) thì b§n làm nh˜ th∏ nào?
V.1 Cài ∞t ImageMagick và Ghostscript

B§n c¶n download ImageMagick và Ghostscript t¯ Internet v∑ máy tính và cài ∞t


mÎt cách bình th˜Ìng. B§n có th∫ vào link sau:
ImageMagick: https://imagemagick.org
Ghostscript https://www.ghostscript.com
Tßt nhiên b§n cÙng có th∫ vào Google và seach vÓi các t¯ khóa ImageMagick và
Ghostscript và b§n s≥ tìm thßy ngay nh˙ng trang này. Vào ây b§n hãy chÂn phiên
b£n cho phù hÒp vÓi hª i∑u hành máy cıa b§n (32 bit ho∞c 64 bit) và cài ∞t theo th˘
t¸ nh˜ sau:

• B˜Óc 1: Cài ∞t ImageMagick (l˜u ˛ khi cài ∞t chÂn ¶y ı các tính n´ng).

Trung tâm GDNN - GDTX Duy Tiên Trang 61


Mˆc lˆc HÂc Tikz theo cách cıa b§n

Trung tâm GDNN - GDTX Duy Tiên Trang 62


HÂc Tikz theo cách cıa b§n Mˆc lˆc

• B˜Óc 2: Khi cài xong ImageMagick, b§n vào th˜ mˆc cài ∞t ImageMagick và tìm
∏n file convert.exe và Íi tên file này thành imgconvert.exe

• B˜Óc 3: Cài ∞t Ghostscript.

Trung tâm GDNN - GDTX Duy Tiên Trang 63


Mˆc lˆc HÂc Tikz theo cách cıa b§n

• B˜Óc 4: Cßu hình Configuration. B§n thay th∏ dòng pdflatex trong Configuration
t¯ pdflatex -synctex=1 -interaction=nonstopmode %.tex
thành: pdflatex -synctex=1 -shell-escape -interaction=nonstopmode %.tex

Trung tâm GDNN - GDTX Duy Tiên Trang 64


HÂc Tikz theo cách cıa b§n Mˆc lˆc

• B˜Óc 5: Thêm tùy chÂn vào khai báo lÓp v´n b£n:

\documentclass[tikz,border=1mm,convert={outfile=\jobname.png}]{standalone}

Trong ó b§n có th∫ thay ‡nh d§ng file £nh mà b§n muËn nh˜ jpg, svg . . .

• B˜Óc 6: Nhßn biên d‡ch và h˜ng thành qu£.

B§n cÙng c¶n chú ˛ r¨ng cách thi∏t l™p này hoàn toàn hiªu qu£ vÓi các trình so§n
th£o nh˜ TexMaker và Texstudio. Riêng vÓi Vietex thì tôi ch˜a tìm ra cách cßu
hình cho phù hÒp m∞c dù cÙng ã t¯ng th˚ qua. Tßt nhiên b§n có th∫ cài song song vài
trình so§n th£o trên máy tính vì nh˙ng trình so§n th£o này không h∑ làm t´ng dung
l˜Òng áng k∫ cho máy tính cıa b§n (kho£ng vài chˆc Mb vÓi mÈi trình so§n th£o thì
quá Ïn gi£n).

V.2 Làm £nh Îng tr¸c ti∏p trên PDF

B§n muËn t§o nh˙ng £nh Îng trên file PDF tr¸c ti∏p b¨ng Tikz? B§n hãy dùng
gói animate. Tr˜Óc h∏t b§n gÂi gói lªnh làm £nh Îng b¨ng viªc s˚ dˆng
\usepackage{animate} . Sau ó là b§n t§o code v≥.
Cßu trúc cıa code bao gÁm:

Trung tâm GDNN - GDTX Duy Tiên Trang 65


Mˆc lˆc HÂc Tikz theo cách cıa b§n

\begin{animateinline}[controls,autoplay,loop]{s hình/giây}
\multiframe{\n}{i=0+1}{
\begin{tikzpicture}
..........................
...Lnh v hình...
..........................
\end{tikzpicture}
}
\end{animateinline}

MÎt vài tùy chÂn cıa môi tr˜Ìng animate:

• controls: Hi∫n th‡ b£ng i∑u khi∫n (play,pause, stop . . . )

• outoplay: Hình t¸ Îng ch§y khi m file PDF.

• loop: Ch§y l∞p i l∞p l§i không d¯ng.

• palindrome: Ch§y xuôi, ng˜Òc.

• sË hình/giây: là mÎt con sË cˆ th∫ quy ‡nh s¸ nhanh/ch™m cıa chuy∫n Îng
hình £nh.

• multiframe: Bi∏n ch§y i ch§y t¯ 0 ∏n n theo quy lu™t i = i + 1

Trong ph¶n lªnh v≥ hình, n∏u code hình cıa b§n không có s¸ tham gia cıa bi∏n i
thì hình v≥ cıa b§n s≥ luôn ˘ng yên (tác Îng cıa s¸ thay Íi bi∏n i làm cho thay Íi
hình £nh).
Ngoài ra b§n c¶n chú ˛ r¨ng, khi t§o £nh Îng do viªc thay Íi hình £nh nên khung
hình s≥ có s¸ thay Íi. Khi ó b§n muËn £nh ch§y mà khung hình ˘ng yên b§n c¶n
khéo léo clip khung hình ngay tr˜Óc tßt c£ các lªnh v≥. Tôi s≥ làm mÎt ví dˆ Ïn gi£n
nh˜ sau:

\begin{animateinline}[controls,autoplay,loop,palindrome]{5}
\multiframe{90}{i=0+1}{
\begin{tikzpicture}
\clip (-10:3) arc (0:190:3)--cycle;
\draw[-stealth,thick] (180:2.5)--(0:2.5);
\draw[-stealth,thick] (0:0)--(90:2.5);
\draw[blue,thick] (0:2) arc (0:2*\i : 2);
\end{tikzpicture}
}
\end{animateinline}

và ta s≥ ˜Òc mÎt £nh Îng v≥ n˚a ˜Ìng tròn bán kính 2 Ïn v‡:

Trung tâm GDNN - GDTX Duy Tiên Trang 66


HÂc Tikz theo cách cıa b§n Mˆc lˆc

B§n muËn xem ˜Òc hình Îng tr¸c ti∏p trên PDF thì b§n c¶n ph£i cài ∞t Adobe
AcrobatReader nhé. Các trình xem PDF khác không hÈ trÒ b§n i∑u này.

V.3 Làm £nh Îng gif ∫ upload lên web

Ngoài viªc b§n làm £nh Îng ch§y tr¸c ti∏p trên file PDF, b§n có th∫ nhÌ vào
ImageMagick ∫ t§o £nh Îng ‡nh d§ng gif mà b§n th˜Ìng thßy trên web.
V∑ b£n chßt £nh gif chø là t™p hÒp các tßm £nh xußt hiªn liên tˆc. Do ó b§n c¶n
t§o nhi∑u £nh liên tˆc rÁi nhÌ ImageMagick t§o £nh gif cho b§n mà thôi. Nh˜ v™y
tr˜Óc h∏t b§n c¶n t§o mÎt file PDF có nhi∑u trang, mÈi trang là mÎt hình £nh, t¯ ó
b§n dùng lªnh convert cıa ImageMagick.
∫ t§o mÎt file PDF có nhi∑u trang liên tˆc, chØng h§n nh˜ hình b§n v¯a v≥, b§n
s≥ có code nh˜ sau:

\documentclass[tikz,border=5mm]{standalone}
\begin{document}
\foreach \i in {0,...,90}{
\begin{tikzpicture}
\clip (-10:3) arc (0:190:3)--cycle;
\draw[-stealth,thick] (180:2.5)--(0:2.5);
\draw[-stealth,thick] (0:0)--(90:2.5);
\draw[blue,thick] (0:2) arc (0:2*\i : 2);
\end{tikzpicture}
}
\end{document}

Khi b§n biên d‡ch file này, b§n s≥ có mÎt file PDF gÁm 90 trang, mÈi trang là mÎt
hình ˘ng vÓi mÎt giá tr‡ cıa bi∏n i. Bây giÌ b§n hãy ∞t nó  âu ó trong máy tính và
m cmd cıa windown lên (Nhßn nút start rÁi chÂn run, gõ cmd). B§n s≥ có c˚a sÍ cmd
nh˜ sau:

Trung tâm GDNN - GDTX Duy Tiên Trang 67


Mˆc lˆc HÂc Tikz theo cách cıa b§n

B§n s˚ dˆng dòng lªnh sau:

imgconvert convert -density 300 -delay 10 -alpha remove Duong dan den file
pdf Duong dan den file gif

Trong dòng lªnh trên, ta thßy mÎt vài thông sË c¶n hi∫u:

• imgconvert convert: Lªnh chuy∫n Íi.

• -density 300: Chßt l˜Òng hình £nh, thông th˜Ìng ∫ con sË 300 là hÒp l˛. Con
sË này càng lÓn thì thÌi gian convert càng lâu Áng nghæa vÓi chßt l˜Òng hình £nh
càng tËt.

• -delay 10: ThÌi gian chuy∫n hình £nh ( Î trπ). Nh˜  ây c˘ 10/100 giây s≥
chuy∫n mÎt hình. Con sË càng t´ng thì hình càng ch§y ch™m và ng˜Òc l§i.

• -alpha remove: Lªnh t§o gif và xóa b‰ nh˙ng thi∏t ∞t t§m sau khi chuy∫n Íi.
Khuy∏n cáo không thay Íi chÈ này.

• ˜Ìng d®n ∏n file pdf: ChØng h§n tôi ∞t file Hinh01.pdf cıa tôi trong th˜
mˆc Hinhgif cıa Í D thì tôi s≥ ∞t ˜Ìng d®n này là:
D:\HinhGif\Hinh01.pdf

• ˜Ìng d®n ∏n file hình gif: T˜Ïng t¸, tôi muËn convert file Hinh01.pdf
thành Hinh01.gif và ∞t vào cùng th˜ mˆc file PDF thì tôi s≥ ∞t ˜Ìng d®n này
là:
D:\HinhGif\Hinh01.gif

V™y là tôi có th∫ ∞t mÎt dòng lªnh nh˜ sau:

imgconvert convert -density 300 -delay 10 -alpha remove D:\HinhGif\Hinh01.pdf


D:\HinhGif\Hinh01.gif

Xong xuôi viªc ∞t lªnh. Viªc còn l§i là copy dòng lªnh này vào cmd và nhßn Enter.

Trung tâm GDNN - GDTX Duy Tiên Trang 68


HÂc Tikz theo cách cıa b§n Mˆc lˆc

ChÌ Òi cho ∏n khi cmd làm viªc xong thì ta s≥ có mÎt file £nh gif ∫ s˚ dˆng.

LÌi khuyên cho b§n là viªc nhÓ dòng lªnh trên khá khó nên b§n c˘ copy rÁi dán
dòng lªnh trên vào mÎt file txt rÁi l˜u l§i chÈ thu™n tiªn, khi muËn t§o hình gif thì m
ra thay Íi thông sË cho phù hÒp yêu c¶u rÁi copy, paste cho kh‰i dính lÈi sai lªnh.

Trung tâm GDNN - GDTX Duy Tiên Trang 69


Mˆc lˆc HÂc Tikz theo cách cıa b§n

VI Các th˜ viªn th˜Ìng dùng

Trong viªc v≥ hình Tikz, b§n có th∫ c¶n mÎt sË th˜ viªn sÆn có cıa Tikz ∫ viªc v≥
Ïn gi£n và hiªu qu£ hÏn, chúng ta có th∫ tìm hi∫u mÎt sË th˜ viªn th˜Ìng dùng nhßt.
Cú pháp ∫ gÂi th˜ viên cıa Tikz nh˜ sau:

\usetikzlibrary{calc,angles,intersections,patterns,decorations.text,shadings}

Trong cú pháp gÂi th˜ viªn trên, calc, angles, intersections . . . là tên các th˜
viªn ta c¶n gÂi ra. Khi c¶n gÂi nhi∑u th˜ viªn b§n chú ˛ chø c¶n dùng mÎt lªnh
\usetikzlibrary{ } và liªt kê tên các th˜ viªn trong c∞p ngo∞c nhÂn (cách nhau
bi dßu “ph©y”) ch˘ không c¶n thi∏t dùng quá nhi∑u lªnh gÂi nhé.

VI.1 calc

Th˜ viªn cung cßp cho ta các phép tính Ëi vÓi to§ Î cıa Tikz. Th˜ viªn này ˜Òc
s˚ dˆng hàng ¶u khi v≥ hình. ∞c biªt là các bài hình hÂc phØng. Khi chúng ta s˚
dˆng ∏n các mËi liên quan gi˙a các i∫m. ChØng h§n muËn khai báo trung i∫m cıa
o§n thØng AB ta s˚ dˆng lªnh
\path ($(A)!.5!(B)$) coordinate (A);
Khi ó n∏u b§n không gÂi th˜ viªn calc thì Tikz s≥ báo lÈi. Nh˜ v™y, khi b§n muËn
dùng các phép tính tÂa Î thì viªc gÂi th˜ viªn calc là b≠t buÎc.

VI.2 intersections

Th˜ viªn ∫ tính toán và tìm tÂa Î giao i∫m gi˙a các ˜Ìng b¨ng cách ∞t tên ˜Ìng
vÓi tùy chÂn name path và lªnh lßy giao i∫m b¨ng tùy chÂn name intersections.
Chú ˛ r¨ng riêng viªc lßy giao i∫m cıa hai ˜Ìng thØng ta hoàn toàn không c¶n gÂi
th˜ viªn intersections. Tuy nhiên viªc s˚ dˆng th˜ viªn intersections cÙng có nh˙ng
h§n ch∏ chø lßy ˜Òc nh˙ng giao i∫m “th¸c” gi˙a các ˜Ìng mà thôi (nói cách khác là
nó chø lßy ˜Òc giao i∫m cıa các o§n). Còn khai báo
(intersection of A–B and C–D) coordinate M
s≥ lßy ˜Òc giao i∫m cıa hai ˜Ìng thØng cho dù o§n AB và CD có c≠t nhau th¸c
hay không. Lªnh này lßy chính xác giao i∫m cıa hai ˜Ìng i qua hai o§n thØng ó.
Do v™y b§n cÙng nên cân nh≠c khi nào dùng khai báo tr¸c ti∏p, khi nào gÂi th˜ viªn và
∞t tên ˜Ìng. Khuy∏n cáo là khi c¶n giao i∫m cıa hai ˜Ìng thØng thì nên dùng tr¸c
ti∏p, còn các Ëi t˜Òng khác ( ˜Ìng thØng và ˜Ìng cong, ˜Ìng cong và ˜Ìng cong)
thì nên gÂi th˜ viªn.

Trung tâm GDNN - GDTX Duy Tiên Trang 70


HÂc Tikz theo cách cıa b§n Mˆc lˆc

VI.3 angles

Th˜ viªn cho ta các kí hiªu góc trong hình hÂc phØng. ChØng h§n b§n xem ví dˆ
sau:

\begin{tikzpicture}
\draw (0,0) coordinate (A)
--(4,0) coordinate (B)
--(1,3) coordinate (C)
--cycle
;
\draw
pic[draw,double]{angle = C--B--A}
;
\end{tikzpicture}

VÓi pic, b§n có nhi∑u tùy chÂn trong c∞p ngo∞c vuông, có th∫ là tùy chÂn mÙi tên
-> , tùy chÂn màu red,blue ... , tùy chÂn ki∫u ˜Ìng, Î ™m nh§t cıa ˜Ìng,
tùy chÂn tô ho∞c không (fill), . . . MÎt chú ˛ khác là b§n c¶n nhÓ ∏n th˘ t¸ các i∫m
s≥ cho ta góc trong ho∞c góc ngoài cıa tam giác trong ví dˆ trên nhé.
Riêng k˛ hiªu vuông góc thì tr˜Óc ây Tikz cÙng ã có nh˜ng sau ó phát sinh mÎt
sË lÈi. Phiên b£n hiªn nay không có k˛ hiªu này, b§n hoàn toàn có th∫ t§o macro riêng
cho mình bàng vài lªnh Ïn gi£n ho∞c b§n v≥ tr¸c ti∏p.
Tßt nhiên là các k˛ hiªu này cÙng chø có mÎt vài m®u cË ‡nh, còn n∏u b§n muËn
tùy bi∏n cách k˛ hiªu theo ˛ b§n thì tôi gÒi ˛ cho b§n t§o macro ∫ bi∫u diπn k˛ hiªu
góc cho tho£i mái.

VI.4 patterns

Th˜ viªn dùng ∫ tô n∑n mÎt mi∑n phØng nào ó giÓi h§n bi các ˜Ìng. Ph¶n này
tôi ã giÓi thiªu khá kˇ trong ph¶n tô mi∑n Á th‡ hàm sË.

VI.5 Decoration

MÎt th˜ viªn cÙng khá th˜Ìng dùng khi v≥ các hình minh hÂa, ∞c biªt là các hình
v≥ bài toán th¸c t∏. Chúng ta th˜Ìng dùng nhßt là decorations.pathmorphing và
decorations.text. B§n có th∫ ít dùng decorations.pathmorphing hÏn nên ph¶n này
tôi dành cho các b§n tra c˘u pgfmanual.pdf
VÓi decorations.text, b§n s≥ th˜Ìng dùng hÏn khi b§n muËn hi∫n th‡ ch˙ ch§y theo
mÎt ˜Ìng path nào ßy. ChØng h§n b§n muËn dòng ch˙ ch§y theo mÎt ˜Ìng tròn:

Trung tâm GDNN - GDTX Duy Tiên Trang 71


Mˆc lˆc HÂc Tikz theo cách cıa b§n

\begin{tikzpicture}
y theo n˚a ˜Ì
\draw[decoration={text along path, ch§ ng
text={M{}t d{ò}ng ch{} ch{}y h ˙

trò
c
òng
theo n{}a {}ng

n
MÎt d
tr{ò}n}},decorate] (0,0) arc
(180:0:3) ;
\end{tikzpicture}

B§n c¶n chú ˛ r¨ng, trong tùy chÂn text along path thì dòng ch˙ c¶n hi∫n th‡ là
ch˙ ti∏ng Anh ho∞c ti∏ng Viªt không dßu b§n có th∫ gõ bình th˜Ìng, nh˜ng n∏u nh˜
b§n muËn hi∫n th‡ ti∏ng Viªt, tËt nhßt b§n ∞t c£ cˆm t¯ ti∏ng Viªt trong c∞p dßu
ngo∞c nhÂn thì Tikz mÓi biên d‡ch cho b§n. N∏u b§n không ∫ ˛ ∏n chú ˛ này thì viªc
biên d‡ch cıa b§n s≥ g∞p lÈi.
B§n muËn thêm các tùy chÂn khác cho dòng ch˙ cıa b§n µp hÏn. Vui lòng tra c˘u
thêm pgfmanual.pdf

VI.6 Shadings
Th˜ viªn giúp b§n tô màu, pha trÎn màu hoàn h£o hÏn. VÓi th˜ viªn này b§n hoàn
toàn có th∫ tùy bi∏n tô màu khá µp và £m b£o tính ph˘c t§p cıa mi∑n ˜Òc tô màu.
Chúng ta có mÎt sË tùy chÂn:

• top color: Màu trên ønh.

• bottom color: Màu d˜Ói chân.

• middle color: Màu  gi˙a.

• left color: Màu bên trái.

• right color: Màu bên ph£i.

• ball color: Tô màu d§ng c¶u.

• lower left: Góc trái bên d˜Ói.

• upper left: Góc trái bên trên.

• upper right: Góc ph£i bên trên.

• lower right: Góc ph£i bên d˜Ói.

• color wheel: D§ng æa màu.

• inner color: Tô t¯ trong ra.

• outer color: Tô t¯ ngoài vào.

Trung tâm GDNN - GDTX Duy Tiên Trang 72


HÂc Tikz theo cách cıa b§n Mˆc lˆc

VÓi các tùy chÂn trên, b§n c¶n nh™p tên màu vÓi mÈi tùy chÂn ∫ ki∫m ch˘ng và
hÂc h‰i. Tßt nhiên b§n có th∫ phËi trÎn cùng lúc vài ba tùy chÂn ∫ viªc tô màu cıa
b§n hoàn h£o hÏn.

\begin{tikzpicture}
\fill[ball color=red] (0,0) circle
(1);
\shade[top color=blue,bottom
color=orange,middle color=white]
(2,-1) rectangle (6,1);
\end{tikzpicture}

\begin{tikzpicture}
\fill[lower left=red,upper
right=pink] (0,0) circle (1);
\shade[shading=color wheel] (2,-1)
rectangle (6,1);
\end{tikzpicture}

\begin{tikzpicture}
\fill[outer color=blue] (0,0)
circle (1);
\shade[inner color=yellow] (2,-1)
rectangle (6,1);
\end{tikzpicture}

Ch≠c r¨ng vÓi vài ba ví dˆ trên, b§n s≥ rút ra viªc s˚ dˆng các tùy chÂn ∫ tô màu
hình v≥ cıa mình cho hÒp l˛.
Tßt nhiên r¨ng Tikz còn có nhi∑u th˜ viªn khác, n∏u b§n c¶n b§n hãy tra c˘u ∫
bi∏t thêm. MÎt vài th˜ viªn tôi liªt kê trên ây chø là nh˙ng th˜ viªn th˜Ìng dùng nhßt
khi v≥ hình mà thôi.

Trung tâm GDNN - GDTX Duy Tiên Trang 73

You might also like