# Diện tích đa giác từ tọa độ: công thức dây giày

> Tính diện tích, chu vi và trọng tâm diện tích của đa giác đơn từ tọa độ đỉnh bằng công thức dây giày, với từng số hạng được trình bày.

Phiên bản tương tác: https://www.calcopenly.com/vi/geometry/polygon-area-from-coordinates
Chủ đề: Máy tính hình học

List a polygon's corners in order around the outline and the shoelace formula gives its area: A = ½|Σ(xᵢyᵢ₊₁ − xᵢ₊₁yᵢ)|, with the sum wrapping from the last vertex back to the first. The sign of the sum shows the direction of travel, positive for counterclockwise. The same terms give the centroid, and the edge lengths add up to the perimeter.

The default five points, (1, 6), (3, 1), (7, 2), (4, 4) and (8, 5), are the worked example in Wikipedia's article on the formula: the terms sum to 33, so the area is 16.5 m². Surveyors use the method, also called the surveyor's area formula, to find a plot's area from the corner coordinates on a site plan.

The outline must not cross itself; crossing edges trigger a warning, because the overlapping parts then cancel or count twice. Coordinates must be planar, so convert latitude and longitude to a projected grid such as UTM first.

## Dữ liệu đầu vào

- **Vertices in order (x, y per line)**: Go around the outline in either direction. Brackets and semicolons are fine; a repeated first point at the end is ignored.
- **Coordinates are in** (lựa chọn: No unit, Milimét (mm), Xentimét (cm), Mét (m), Kilômét (km), Inch (in), Foot (ft), Yard (yd), Dặm (mi))

## Kết quả

- Diện tích — kết quả chính
- Signed area
- Chu vi
- Centroid x
- Centroid y
- Number of vertices
- Vertex order

## Công thức

$$
\begin{gathered} A = \frac{1}{2}\sum_{i=1}^{n}(x_i y_{i+1} - x_{i+1} y_i) \\[6pt] C_x = \frac{1}{6A}\sum (x_i + x_{i+1})(x_i y_{i+1} - x_{i+1} y_i) \end{gathered}
$$

## Ví dụ có lời giải

### Wikipedia's pentagon

- Vertices in order (x, y per line): 1, 6 / 3, 1 / 7, 2 / 4, 4 / 8, 5
- Coordinates are in: Mét (m)
- **Diện tích: 16.5 m²**
- **Number of vertices: 5**
- **Vertex order: Counterclockwise**
- **Chu vi: 24.307995 m**
- **Centroid x: 3.88888889 m**
- **Centroid y: 3.66666667 m**
- Nguồn đối chiếu: Area 16.5 from the Wikipedia “Shoelace formula” worked example; Python 3.8 fractions: signed sum +33 (counterclockwise), centroid (35/9, 11/3); math.sqrt edge sum for the perimeter

### Rectangle 4 × 3

- Vertices in order (x, y per line): 0, 0 / 4, 0 / 4, 3 / 0, 3
- Coordinates are in: Mét (m)
- **Diện tích: 12 m²**
- **Chu vi: 14 m**
- **Centroid x: 2 m**
- **Centroid y: 1.5 m**
- **Vertex order: Counterclockwise**
- Nguồn đối chiếu: 4 × 3 rectangle; centroid at the centre

### Right triangle, centroid at the mean of the vertices

- Vertices in order (x, y per line): (0, 0) (4, 0) (0, 3)
- Coordinates are in: Mét (m)
- **Diện tích: 6 m²**
- **Chu vi: 12 m**
- **Centroid x: 1.33333333 m**
- **Centroid y: 1 m**
- Nguồn đối chiếu: ½ × 4 × 3; 3-4-5 perimeter; a triangle's centroid is the vertex mean (4/3, 1)

### Clockwise square (edge case: negative signed area)

- Vertices in order (x, y per line): 0 0; 0 2; 2 2; 2 0
- Coordinates are in: Mét (m)
- **Diện tích: 4 m²**
- **Signed area: -4 m²**
- **Vertex order: Clockwise**
- Nguồn đối chiếu: Shoelace sum for clockwise order is −2 × area

### L-shaped plot in feet

- Vertices in order (x, y per line): 0,0 / 6,0 / 6,2 / 2,2 / 2,5 / 0,5
- Coordinates are in: Foot (ft)
- **Diện tích: 18 ft²**
- **Chu vi: 22 ft**
- **Centroid x: 2.33333333 ft**
- **Centroid y: 1.83333333 ft**
- Nguồn đối chiếu: 6×2 + 2×3 = 18 ft²; Python 3.8 fractions: centroid (7/3, 11/6)

### Closed ring with the first point repeated (edge case)

- Vertices in order (x, y per line): 0 0 / 4 0 / 4 3 / 0 3 / 0 0
- Coordinates are in: Mét (m)
- **Diện tích: 12 m²**
- **Number of vertices: 4**
- Nguồn đối chiếu: The repeated closing vertex adds a zero-length edge; same rectangle as above

## Câu hỏi

### How does the shoelace formula work?

Multiply each x by the next vertex's y, subtract the next x times this y, add the results all the way round and halve the absolute value. For (0, 0), (4, 0), (4, 3), (0, 3) the terms are 0, 12, 12 and 0, so the area is 24/2 = 12. The name comes from the criss-cross pattern the products make when the coordinates are written in two columns.

### Does the order of the points matter?

Yes. The points must follow the boundary, clockwise or counterclockwise, without jumping across. Direction only flips the sign: counterclockwise gives a positive sum, clockwise a negative one, and the area is the absolute value. The corners of a 2 × 2 square taken as (0, 0), (2, 2), (2, 0), (0, 2) trace a crossed bow-tie whose shoelace area is 0 instead of 4.

### How do you find the area of an irregular plot of land from its corners?

Record each corner as coordinates on a flat grid, such as eastings and northings in metres from a site plan, list them in order round the boundary and apply the shoelace formula. An L-shaped plot with corners (0, 0), (6, 0), (6, 2), (2, 2), (2, 5) and (0, 5) in feet covers 18 ft². Latitude and longitude must be projected first, because a degree of longitude shrinks towards the poles.

### How do you find the centroid of a polygon?

Weight each shoelace term by the sum of the two x coordinates involved: Cx = Σ(xᵢ + xᵢ₊₁)(xᵢyᵢ₊₁ − xᵢ₊₁yᵢ)/(6A), with A the signed area, and likewise for Cy. For a triangle this equals the average of the three vertices; for the L-shaped plot above it is (7/3, 11/6) ≈ (2.333, 1.833). The centroid of a non-convex shape can lie outside it.

### “Diện tích đa giác từ tọa độ: công thức dây giày” chính xác đến mức nào?

Độ chính xác phụ thuộc vào dữ liệu nhập và giả định của phương pháp. Phép tính thập phân dùng 50 chữ số có nghĩa, nhưng ước lượng, phương pháp số và dữ liệu nguồn có thể kém chính xác hơn; làm tròn khi hiển thị không loại bỏ các giới hạn đó. Ví dụ có lời giải đã đối chiếu với nguồn độc lập: 7. Ví dụ, “Wikipedia's pentagon” được kiểm tra bằng Area 16.5 from the Wikipedia “Shoelace formula” worked example; Python 3.8 fractions: signed sum +33 (counterclockwise), centroid (35/9, 11/3); math.sqrt edge sum for the perimeter.

### Phương pháp này lấy từ đâu?

Wikipedia, “Shoelace formula” — worked example with vertices (1, 6), (3, 1), (7, 2), (4, 4), (8, 5); Bourke, P. (1988) “Calculating the area and centroid of a polygon”.

## Nguồn

- [Wikipedia, “Shoelace formula” — worked example with vertices (1, 6), (3, 1), (7, 2), (4, 4), (8, 5)](https://en.wikipedia.org/wiki/Shoelace_formula)
- [Bourke, P. (1988) “Calculating the area and centroid of a polygon”](https://paulbourke.net/geometry/polygonmesh/)
