giải pháp độc lập ngôn ngữ:
GIVEN: một đa giác LUÔN có thể được tạo bởi n-2 tam giác không trùng nhau (n = số điểm HOẶC cạnh). 1 tam giác = đa giác 3 cạnh = 1 tam giác; 1 hình vuông = 4 cạnh đa giác = 2 hình tam giác; vv quảng cáo nauseam QED
do đó, một đa giác có thể được giảm bớt bằng cách "cắt nhỏ" các tam giác và tổng diện tích sẽ là tổng diện tích của các tam giác này. hãy thử nó với một mảnh giấy và kéo, tốt nhất là bạn nên hình dung quy trình trước khi làm theo.
nếu bạn lấy 3 điểm liên tiếp bất kỳ trong một đường đa giác và tạo một hình tam giác với những điểm này, bạn sẽ có một và chỉ một trong ba trường hợp có thể xảy ra:
- kết quả tam giác nằm hoàn toàn bên trong đa giác ban đầu
- kết quả là tam giác nằm hoàn toàn bên ngoài đa giác ban đầu
- tam giác kết quả được chứa một phần trong đa giác ban đầu
chúng tôi chỉ quan tâm đến các trường hợp nằm trong tùy chọn đầu tiên (hoàn toàn chứa).
Mỗi khi chúng tôi tìm thấy một trong số chúng, chúng tôi cắt nó ra, tính diện tích của nó (dễ hiểu, sẽ không giải thích công thức ở đây) và tạo một đa giác mới với một cạnh nhỏ hơn (tương đương với đa giác có tam giác này bị cắt nhỏ). cho đến khi chúng ta chỉ còn lại một tam giác.
cách thực hiện chương trình này:
tạo một mảng (liên tiếp) các điểm biểu diễn đường đi QUA đa giác. bắt đầu từ điểm 0. chạy mảng tạo tam giác (lần lượt) từ các điểm x, x + 1 và x + 2. biến đổi mỗi tam giác từ một hình dạng thành một diện tích và cắt nó với diện tích được tạo ra từ đa giác. NẾU giao điểm kết quả giống với tam giác ban đầu, thì tam giác đó hoàn toàn được chứa trong đa giác và có thể bị cắt nhỏ. xóa x + 1 khỏi mảng và bắt đầu lại từ x = 0. ngược lại (nếu tam giác nằm ngoài [một phần hoặc toàn bộ] đa giác), hãy di chuyển đến điểm tiếp theo x + 1 trong mảng.
Ngoài ra, nếu bạn đang tìm cách tích hợp với lập bản đồ và bắt đầu từ điểm địa lý, bạn phải chuyển đổi từ điểm địa lý sang điểm màn hình ĐẦU TIÊN. điều này đòi hỏi phải quyết định một mô hình và công thức cho hình dạng trái đất (mặc dù chúng ta có xu hướng nghĩ trái đất như một hình cầu, nhưng nó thực sự là một hình trứng không đều (hình trứng), có vết lõm). có rất nhiều mô hình ra khỏi đó, wiki để biết thêm thông tin. một vấn đề quan trọng là bạn sẽ coi khu vực đó là mặt phẳng hay là đường cong. Nói chung, các khu vực "nhỏ", nơi các điểm cách nhau đến vài km, sẽ không tạo ra sai số đáng kể nếu coi là phẳng và không lồi.