> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/vi/bai-viet-chuyen-sau/26-how-to-draw-vector-graphics-using-tikz-in-latex.md).

# Cách vẽ đồ họa vector bằng TikZ trong LaTeX

**Tác giả: Cody Herring (tháng 5 năm 2013)**

### Đồ họa thủ tục trong LaTeX: những điều cơ bản

Theo truyền thống, đồ họa được biểu diễn dưới dạng bitmap, với độ sâu từ 1 bit (đen trắng) đến 24 bit (màu thực). Điều này cho phép hiển thị đồ họa một cách đơn giản trên màn hình máy tính truyền thống (hình chữ nhật). Tuy nhiên, việc tạo ra các bitmap thể hiện chính xác những gì nên được hiển thị trên tài liệu hoặc trên giấy có thể khó khăn và tốn công.

Đồ họa thủ tục hỗ trợ điều này bằng cách cho phép sử dụng một hệ thống được xác định rõ hơn và dễ hiểu hơn như Scalable Vector Graphics (SVG). Bằng cách định nghĩa các vector, đường thẳng và hình dạng thay vì từng điểm ảnh riêng lẻ, hình ảnh có thể dễ dàng được tạo ra cho nhiều kích thước, tỷ lệ khung hình, mật độ điểm ảnh, chất lượng in ấn, v.v. Bài hướng dẫn này sẽ cung cấp một giới thiệu ngắn về đồ họa thủ tục bằng Portable Graphics Format và TikZ:

* **Định dạng đồ họa di động** (PGF) là một bộ công cụ cơ bản, cho phép tạo ra các đồ họa và hình vẽ đơn giản;
* **TikZ** là một phần mở rộng của PGF, cho phép sử dụng rất nhiều hình vẽ dựng sẵn.

Tài liệu chi tiết về TikZ và PGF có thể được tìm thấy trong [Sổ tay PGF](http://mirrors.ctan.org/graphics/pgf/base/doc/pgfmanual.pdf).

### Sử dụng PGF và TikZ

Để sử dụng gói TikZ, nó phải được nhập vào:

```latex
\usepackage{tikz}
```

Để vẽ hình, phải sử dụng `tikzpicture` môi trường:

```latex
\begin{tikzpicture}
các lệnh ở đây
\end{tikzpicture}
```

### Vẽ cơ bản

TikZ cho phép vẽ nhiều hình dạng và đường đi khác nhau. Ở đây sẽ trình bày một số kỹ thuật vẽ cơ bản. Những kỹ thuật này có thể được kết hợp để tạo ra các hình vẽ phức tạp hơn.

#### Đường thẳng

Một đường thẳng từ điểm này đến điểm khác có thể được vẽ bằng `\draw` lệnh theo hệ tọa độ X/Y (ngang/dọc), như sau:

```latex
\begin{tikzpicture}
\draw (5,0) -- (-5, 0);
\end{tikzpicture}
```

Nhiều `\draw` lệnh gọi cũng có thể được nối lại với nhau. Điều này vẽ một hệ trục từ -5 đến +5 theo hướng X, và từ -2 đến +2 theo hướng Y.

```latex
\begin{tikzpicture}
\draw   (5,0) -- (-5, 0)
        (0,2) -- (0,-2);
\end{tikzpicture}
```

![TikZFigure 1.png](/files/b9a1041bd6f289ca094e9c477212383a88b51ce6)

Có thể áp dụng kiểu cho các đường này bằng cách thêm các tham số bổ sung. Dưới đây là cùng một sơ đồ, nhưng với các đường màu xanh lá, chấm chấm, rất dày và được xoay ngược chiều kim đồng hồ 15 độ:

```latex
\begin{tikzpicture}
\draw[green, dotted, ultra thick, rotate=15]
        (5,0) -- (-5, 0)
        (0,2) -- (0,-2);
\end{tikzpicture}
```

![TiKZFigure 2.png](/files/23086c899c7c448259aeeb5aca15a3ac12a1bdab)

#### Thay đổi kích thước của một sơ đồ

Đôi khi kích thước mặc định của một sơ đồ quá lớn hoặc quá nhỏ. Sử dụng tham số `scale` khi khai báo `tikzpicture` môi trường cho phép các kích thước khác nhau nhưng vẫn giữ nguyên tỷ lệ:

```latex
\begin{tikzpicture}[scale=0.3]
\draw   (5,0) -- (-5, 0)
        (0,2) -- (0,-2);
\end{tikzpicture}
```

Hình ảnh sau đây cho thấy tác dụng trước và sau khi áp dụng `[scale=0.3]`:

![TiKZFigure 3.png](/files/919ace13302f56d9d9bf360c06b48c08b2d1ac85)

#### Thêm đầu mũi tên

Mũi tên có thể hữu ích cho đồ thị và sơ đồ, và chúng rất dễ thêm vào một hình TikZ. Có thể dùng các kiểu đã được minh họa trước đó, cũng như nhiều kiểu đầu mũi tên khác nhau.

```latex
\begin{tikzpicture}
\draw[->](0,0) -- (5,0);
\end{tikzpicture}

\begin{tikzpicture}
\draw[<<->>](0,0) -- (5,0);
\end{tikzpicture}

\begin{tikzpicture}
\draw[<<->>, ultra thick, blue](0,0) -- (5,0);
\end{tikzpicture}

\begin{tikzpicture}
\draw[|->>, thick, red](0,0) -- (5,0);
\end{tikzpicture}
```

![TiKZFigure 4.png](/files/ba8743f85fa9e4bab3080c1cde4b82b367086940)

### Vẽ các đường cong

Cách đơn giản nhất để vẽ một đường cong với TikZ là chỉ định điểm bắt đầu và kết thúc, cùng với góc mong muốn khi rời điểm bắt đầu và đi tới điểm kết thúc.

```latex
\begin{tikzpicture}
\draw[ultra thick]
(0,0) to [out=75,in=135](3,4);
\end{tikzpicture}
```

![TiKZFigure 5.png](/files/eda23cbc6a736658cbf710bcb0a007333f8ba51a)

Cũng có thể tạo ra các sơ đồ phức tạp hơn nhiều bằng cách dùng các lệnh nối tiếp. PGF sẽ cố gắng vẽ các đường mượt nhất có thể dựa trên các hướng được cung cấp.

```latex
\begin{tikzpicture}
\draw[ultra thick]
(0,0)
to [out=90,in=180] (2,2)
to [out=270,in=0](0,0)
to [out=0,in=90](2,-2)
to [out=180,in=270](0,0)
to [out=270,in=0](-2,-2)
to [out=90,in=180](0,0)
to [out=180,in=270](-2,2)
to [out=0,in=90](0,0);
\end{tikzpicture}
```

![TIkZFigure 6.png](/files/bd843146b0d2f733e150157658c5d602dd34304b)

### Kết luận

Không có giới hạn cho những gì có thể được vẽ bằng đồ họa vector, và giá trị của chúng trong việc cho phép tạo ra các sơ đồ và hình ảnh có thể mở rộng, dễ chỉnh sửa là một lợi thế lớn cho người dùng LaTeX đang tìm một cách dễ dàng để sử dụng đồ họa. Bài viết này mới chỉ chạm vào bề mặt của những gì có thể làm được, nhưng nên là một phần giới thiệu tốt về khả năng của đồ họa vector và môi trường TikZ/PGF.

Tài nguyên bổ sung:

* [Giới thiệu tối giản về TikZ](http://cremeronline.com/LaTeX/minimaltikz.pdf);
* [Tài liệu CTAN về TikZ & PGF](http://mirrors.ctan.org/graphics/pgf/base/doc/pgfmanual.pdf);
* [Trang Wiki học của Overleaf](/latex/vi/hinh-va-bang/05-tikz-package.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/vi/bai-viet-chuyen-sau/26-how-to-draw-vector-graphics-using-tikz-in-latex.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
