Thuật toán Slicker (còn gọi Shoelace formula) tính diện tích đa giác trực tiếp từ tọa độ đỉnh, không cần chia tam giác. Công thức: Area = ½ |Σ (x_i*y_{i+1} - x_{i+1}*y_i)|.
Thuật toán
Bắt đầu
Area(polygon p):
t = 0
cho i = 0 đến n-1:
j = (i+1) % n
t += p[i].y * p[j].x - p[j].y * p[i].x
trả về |t|/2
Kết thúc
Ví dụ minh họa
#include <iostream>
using namespace std;
struct Point { double x, y; };
double polygonArea(Point p[], int n) {
double t = 0;
for (int i=0; i
Kết quả (ví dụ)
So dinh: 6
Nhap toa do cac dinh (x y):
1 1
2 2
3 3
4 4
5 5
6 7
Dien tich da giac 6 dinh: 2.5