Tính diện tích tam giác javascript

Trong bài học trước, chúng ta đã cùng nhau tìm ra công thức tính diện tích của một tam giác. Trong bài học ngày hôm nay, chúng ta hãy cùng nhau tìm hiểu xem từ công thức đó có thể suy ra những gì nhé.


Nội dung

Để có thể tiếp thu bài học này một cách tốt nhất, các bạn nên có những kiến thức cơ bản về:

Trong bài học ngày hôm nay, chúng ta sẽ cùng nhau tìm hiểu về:

  • Một số tính chất của công thức tính diện tích tam giác

Vấn đề kì trước

Nhắc lại một chút, trong bài học trước, ta đã đặt ra vấn đề như sau:

Trên hệ tọa độ Descartes, cho một tam giác gồm 3 đỉnh xác định bởi các toạ độ . Tính diện tích tam giác đã cho.

Input:

  • Gồm 3 dòng, mỗi dòng cho bởi 2 số nguyên dương  thể hiện cho toạ độ đỉnh của tam giác

Output:

  • Một số thực duy nhất là diện tích tam giác đã cho. Kết quả làm tròn đến 1 chữ số phần thập phân.

Ví dụ:

Giải thích ví dụ:

Đây là tam giác đã cho trên hệ toạ độ Descartes

Tính diện tích tam giác javascript

Sau quá trình phân tích và biến đổi, ra rút ra được công thức sau:

Gọi  lần lượt là toạ độ 3 đỉnh của một tam giác. Khi đó, diện tích tam giác đó được xác định như sau:

 

Mình đã đặt ra một vấn đề như sau:

Nếu như 3 đỉnh của tam giác được tính trong công thức trên có thứ tự là A, C, B, ta sẽ có kết quả là 5,5. Vậy điều gì sẽ xảy ra nếu thứ tự các đỉnh trong công thức trên là A, B, C?

Các bạn có thể thử thay thứ tự các đỉnh trong đoạn code ở bài trước chúng ta đã làm và thấy ngay kết quả. Lúc này, output là -5,5, một số âm. Đây rõ ràng là một điều vô lí do diện tích tam giác thì làm sao có thể là một số âm được. Vậy phải chăng công thức của chúng ta sai? Nếu các bạn tinh ý có thể nhận ra, output khi này chính là giá trị âm của kết quả đúng. Điều này có gì đặc biệt? Trước hết, hãy cùng tìm hiểu tại sao lại có kết quả trên.


Diện tích đại số

Giải thích

Tính diện tích tam giác javascript

Hãy cùng thay toạ độ của các đỉnh theo thứ tự A, B, C vào công thức trên:

Tương đương,  

Hay,

Nếu so công thức trên với công thức đã tính ở bài trước, ta thấy ngay công thức này là công thức ngược với công thức bài trước. Tại sao lại có điều này? Ta có thể giải thích bằng hình học như sau:

Ở bài trước, ta tính “ghép” hai hình  và  thì thấy thừa ra hình  nên “cắt” bỏ đi hình  để thu được tam giác  còn quá trình trên chính là đi làm ngược lại, ta “cắt” bỏ hai hình  và  khỏi hình  nên kết quả là ta “cắt” dư tam giác .

Do đó, thực chất công thức trên chỉ cho ta biết được diện tích đại số của một hình. Muốn tính diện tích hình học của một hình, ta cần lấy giá trị tuyệt đối của diện tích đại số.


Ứng dụng

Xác định chiều các đỉnh được xét

Vậy thì diện tích đại số của một hình có cho ta biết tính chất gì không?

Các bạn hãy thử thứ tự các đỉnh được xét là (A, B, C), (B, C, A) rồi lại thử thứ tự các đỉnh là (C, B, A), (B, A, C). Các bạn có thấy điều gì đặc biệt không?

Nếu các đỉnh được xét theo thứ tự thuận chiều kim đồng hồ thì diện tích đại số sẽ là một số dương và ngược lại nếu các đỉnh được xét theo thứ tự ngược chiều kim đồng hồ thì diện tích đại số sẽ là một số âm.

Mệnh đề trên có thể chứng minh rất đơn giản bằng hình học nhưng ở đây coi như ta công nhận mệnh đề trên.

Mệnh đề trên được sử dụng khá phổ biến, đặc biệt là trong thuật toán tìm bao lồi. Ở trong khóa học này mình sẽ không giới thiệu về bao lồi do đây là một nội dung khó. Tuy nhiên, nếu bạn nào có hứng thú thì có thể tìm hiểu thêm về bao lồi và các ứng dụng của nó với các bài toán hình học.


Xác định một điểm có thuộc tam giác hay không

Bây giờ, ta có một bài toán như sau:

Cho toạ độ một điểm và toạ độ ba đỉnh một tam giác trên hệ tọa độ Descartes. Xác định xem điểm đó có thuộc vào tam giác đã cho hay không.

Tính diện tích tam giác javascript

Từ những hiểu biết về diện tích tam giác, các bạn có nghĩ ra là chúng ta phải làm thế nào không?

Các bạn có nhận xét gì về diện tích của ba tam giác ABD, BCD và CAD so với tam giác ABC?

Ta thấy ngay được . Do đó, để kiểm tra một điểm có thuộc tam giác hay không ta chỉ cần kiểm tra xem liệu 3 tam giác được tạo ra bằng việc kết hợp 2 đỉnh của tam giác và đỉnh cần tìm có bằng diện tích tam giác đang kiểm tra hay không. Nên ghi nhớ diện tích ở đây sẽ là diện tích hình học.


Kết luận

Qua bài này chúng ta đã nắm về Tính diện tích tam giác.

Bài sau chúng ta sẽ tìm hiểu về Quy hoạch động.

Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của mình để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không ngại khó”.


Thảo luận

Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần BÌNH LUẬN bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.