Tính diện tích phần giao của 2 hình chữ nhật

Nguyễn Việt Hùng
(Cantab)

New Member
Please help: Có bạn nào biết một thuật toán hữu hiệu (đơn giản) để tính diện tích phần giao của 2 hình chữ nhật trong mặt phẳng không?.

Chú ý rằng cạnh của các hình chữ nhật không nhất thiết song song với trục tọa độ.
 
Em nghĩ ra cách này nhưng chưa thử bao giờ

1. Chuyển hệ tọa độ về một góc của một hình chữ nhật -> đơn giản hóa bài toán một chút vì 2 cạnh của một hình chữ nhật trùng với hệ trục tọa độ.

2. Tìm giao điểm của các cạnh

3. Từ các giao điểm này tạo các đường thẳng song song với một trục tọa độ (x)

4. Tính diện tích các hình thang hoặc tam giác tạo ra bởi các đường thẳng và cạnh của 2 hình chữ nhật


Cheer,
ĐTrang
 
Lưu Điền Trang đã viết:
Em nghĩ ra cách này nhưng chưa thử bao giờ

1. Chuyển hệ tọa độ về một góc của một hình chữ nhật -> đơn giản hóa bài toán một chút vì 2 cạnh của một hình chữ nhật trùng với hệ trục tọa độ.

2. Tìm giao điểm của các cạnh

3. Từ các giao điểm này tạo các đường thẳng song song với một trục tọa độ (x)

4. Tính diện tích các hình thang hoặc tam giác tạo ra bởi các đường thẳng và cạnh của 2 hình chữ nhật


Cheer,
ĐTrang
Hi Trang,

Thực ra có cách khác thậm chí nhanh hơn là tính tọa độ các giao điểm rồi tính tích phân là ra kết quả. Oái ăm ở chỗ người ra đề chỉ cho 10 phút để implement, anh nghĩ mãi liệu có mẹo gì không, chứ 10' thì không code xong được :)

Cheers
 
Code để tính diện tích trong vòng 10 phút thì căng nhỉ. Thế người hỏi có đáp án không ạ? Nếu chỉ hỏi xem 2 hình chữ nhật có giao nhau không thì đơn giản hơn.

Cheer,
ĐTrang
 
Lưu Điền Trang đã viết:
Code để tính diện tích trong vòng 10 phút thì căng nhỉ. Thế người hỏi có đáp án không ạ? Nếu chỉ hỏi xem 2 hình chữ nhật có giao nhau không thì đơn giản hơn.

Cheer,
ĐTrang
Không, but anh nghĩ 10' ko làm được đâu. Chắc chỉ đủ để đưa ra thuật toán thôi.

Cheerio,
 
Anh thử cách này xem
Tìm tất cả các giao điểm của các cạnh
Vì giao của hai HCN luôn là một đa giác lồi nên sau ta có thể áp dụng công thức tính S đa giác lồi để tính S phần giao
 
Pham Hai Minh đã viết:
Anh thử cách này xem
Tìm tất cả các giao điểm của các cạnh
Vì giao của hai HCN luôn là một đa giác lồi nên sau ta có thể áp dụng công thức tính S đa giác lồi để tính S phần giao

Thanks Hai Minh :), chac cung la cach anh mentioned o post truoc ?
 
nếu implement thôi thì check package java.awt.geom.*

is it for TC?

cheers,
 
Back
Bên trên