您當前的位置:首頁 > 攝影

[LaTeX 繪圖] tikz 繪製平面幾何,示例兩則

作者:由 慕子 發表于 攝影時間:2019-09-13

本文已加入專欄文章目錄,歸入「示例」文章系列。

整體建議:

0。 通讀 tikz 文件

Part I。 Tutorials and Guidelines

中的教程

座標

儘可能少用具體座標,例如

(0, 1)

多用間接座標,如使用 coordinate/node name 和座標運算

同類操作(標點、繪線)集中做

避免重複,例如透過定義 tikz style 來避免重複輸入鍵值選項

在可讀性和輸入簡短之間取平衡(沒有唯一準則,適合自己就好)

可重複利用的 tikz style 配置

\tikzset

{

dot/。style=

{

circle, fill=black, inner sep=1pt, outer sep=0pt

}

dot label/。style=

{

circle, inner sep=0pt, outer sep=1pt

}

% style for every pics named “right angle”

pics/right angle/。append style=

{

/tikz/draw, /tikz/angle radius=5pt

}

}

解釋說明:

定義新 style key

dot

,設定「點」的樣式為半徑為 1pt 的實心圓點。這個 style 會應用於 node。

定義新 style key

dot label

,設定「點」的文字標籤樣式。這個 style 會應用於 node label。

因為只有影響所有 pic 的

every pic

style key、沒有隻影響某一類 pic 的

every xxx pic

style key,我們透過 style key

pics/right angle

設定所有直角標記的樣式。選項作用,詳見本專欄文章《[LaTeX 繪圖] tikz v3。1 新功能,標記直角》。

例 1:座標運算、直角標記和點的繪製

% \usepackage{tikz}

% \usetikzlibrary{angles, calc}

\begin

{

tikzpicture

}

% denote absolute points

\path

coordinate (A) at (0, 0)

coordinate (B) at (60:5)

coordinate (C) at (5, 0);

% denote relative points

\path

coordinate (M) at (

$

A

)!

5

!(

B

$

coordinate (N) at (

$

B

)!

5

!(

C

$

coordinate (Q) at (

$

C

)!

3

!(

A

$

coordinate (P) at (

$

C

)!

8

!(

A

$

coordinate (K) at (

$

M

)!(

P

)!(

Q

$

coordinate (L) at (

$

M

)!(

N

)!(

Q

$

);

% draw lines

\draw

[line width=。5pt]

(A) —— (B) —— (C) —— cycle

(M) —— (Q)

(P) —— (K)

(N) —— (L);

% mark right angles

\draw

pic

{

right angle=P——K——Q

}

pic

{

right angle=N——L——Q

}

% mark points

\foreach

\i

/

\angle

in

{

A/-120, B/120, C/-80, M/120, N/60, P/-90, Q/-90, K/80, L/-95

}

{

\node

[dot, label={[dot label]

\angle

$

\i

$

}

] at (

\i

{}

}

\end

{

tikzpicture

}

[LaTeX 繪圖] tikz 繪製平面幾何,示例兩則

解釋說明:

這個例子中,只使用了三個具體座標,用於標記點 A,B 和 C。

其他的點,都透過座標運算得到。這部分依賴 tikz library

calc

。本例中涉及兩類這樣的點

線上段所在直線上,取的定比例點。

例如「線上段 AC 上,且滿足 CP = 0。8CA 」的 P 點,對應座標

($ (C)!。8!(A) $)

過定點作定直線的垂線,垂線在直線上的垂足。

例如「線外一點 P 在直線 MQ 上的垂足」 K 點,對應座標

($ (M)!(P)!(Q) $)

先集中標記點。

標記點的標準做法是

\coordinate

命令,每次可以標記一個點。這意味著,如果要標記 10 個點,就要輸入 10 次

\coordinate

命令。

為了少輸入反斜槓符號,換用

\path

(並非推薦和必要)

然後畫連線點的線。注意

\draw

支援一次畫多段線(multiple subpaths)。

接著標記直角(依賴 tikz library

angles

,由

pics/right angle

控制樣式)

最後,標記點(樣式由

dot

控制),並在點的附近加上標籤(例如

$A$

,樣式由

every label

控制)。

為了逐一控制標籤相對於點的位置關係,我們用了迴圈。

例 2,弧線和顏色填充

% \usepackage{tikz}

% \usetikzlibrary{backgrounds, calc}

\begin

{

tikzpicture

}

[scale=2]

% denote absolute points

\path

(0, 0) coordinate (D)

(2, 1) coordinate (B);

% denote relative points

\path

(D -| B) coordinate (C)

(D |- B) coordinate (A);

% mark points

\foreach

\i

/

\angle

in

{

A/135, B/45, C/-45, D/-135

}

{

\node

[dot, label={[dot label]

\angle

$

\i

$

}

] at (

\i

{}

}

% draw lines and arc

\draw

(D) rectangle (B)

(D) —— (B)

(C) arc[start angle=0, end angle=180, radius=1];

% fill region

\begin

{

scope

}

[on background layer]

\fill

[fill=blue!50, line join=bevel]

(D) —— (B) —— (

$

B

)!

5

!(

A

$

) arc[start angle=90, end angle=180, radius=1] —— cycle;

\end

{

scope

}

\end

{

tikzpicture

}

[LaTeX 繪圖] tikz 繪製平面幾何,示例兩則

解釋說明:

這個例子中,只使用了兩個具體座標,用於標記點 D 和 B。

標記點時,

用了一種新的 coordinate 語法

用了一種新的相對座標語法:

(D -| B)

標記了「透過點 D 的水平線,和透過點 B 的鉛垂線,兩線的交點」,對應圖中的點 C。

(類似地,座標

(D |- B)

對應圖中的點 A)

顏色填充時,使用 tikz library

backgrounds

提供的

on background layer

選項,以避免填色覆蓋繪線。也可以先填色再繪線。

示例原始碼

見專案 muzimuzhi/latex-examples 中的檔案

tikz-example-planimetry。*

標簽: Coordinate  ANGLE  tikz  Style  標記