2009-09-02 72 views
5

Tôi có một tập hợp các điểm mà tôi muốn biến thành một đa giác kín trong Java. Tôi hiện đang cố gắng sử dụng java.awt.geom.Point2D và java.awt.geom.Area nhưng không thể tìm ra cách biến một nhóm các điểm thành một Khu vực.Chuyển đổi danh sách java.awt.geom.Point2D sang java.awt.geom.Area

Tôi nghĩ rằng tôi có thể xác định một tập hợp các Line2D dựa trên các điểm và sau đó thêm chúng vào các khu vực, nhưng đó là rất nhiều công việc và tôi lười biếng. Vì vậy, có một cách dễ dàng hơn để đi.

Vấn đề là tôi có danh sách tọa độ vĩ độ/kinh độ và muốn xây dựng một khu vực mà tôi có thể sử dụng để thử nghiệm lần truy cập.

Thư viện Java không phải lõi là một khả năng.

Cập nhật, tôi đã xem xét sử dụng java.awt.Polygon nhưng nó chỉ hỗ trợ int và tôi đang hoạt động với tăng gấp đôi cho tọa độ.

Trả lời

3

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4077518

Nghe nói rằng "khách hàng"? Bạn nên sử dụng GeneralPath, mặc dù sự vắng mặt của Polygon2D kể từ cuối những năm 1990 là một lỗ kích thước quái vật có kích thước rõ ràng trong API.

+1

Thông báo có một thực hiện Polygon2D nổi xung quanh trong đó có nguồn gốc từ UI Berkeley lab: http://www.google.com/url?sa=t&source=web&ct=res&cd=5&url=http%3A%2F%2Fptolemy.eecs.berkeley.edu%2F~ptII%2FptolemyII%2FptIIlatest%2FptII% 2Fdiva% 2Futil% 2Fjava2d% 2FPolygon2D.java & ei = BNSeSqr3O4y4M7eMmIwC & usg = AFQjCNErxCV1f6zlpi60FEqPkgG1rAfx5A & sig2 = eWfBVNHxVQzY1eJ3DZvC1Q – M1EK

+1

liên kết tốt hơn: http://ptolemy.eecs.berkeley.edu/~ptII/pto lemyII/ptIIlatest/ptII/diva/util/java2d/ – M1EK

+0

'GeneralPath' là một lớp kế thừa ngay bây giờ. Xem [câu hỏi và câu trả lời này cho một số lựa chọn thay thế] (http://stackoverflow.com/q/11465330/935676). Chúng ta có thể kỷ niệm 20 năm lỗi này vào tháng 9;) – amoebe

1

Nếu bạn đang thực sự làm việc với các giá trị vĩ độ/vĩ độ trắc địa, bạn thực sự có thể sử dụng OpenMap để thực hiện một số tác vụ này. Tôi đã dành một chút thời gian bằng cách sử dụng Geo class trong API đó để trả về một đối tượng xung quanh một khu vực được xác định bởi một đa giác của các điểm vĩ độ/điểm. Có intersection calls và tất cả mọi thứ và tất cả các môn toán được thực hiện theo hình cầu để các điểm chính xác hơn như dự đoán.

0

Điều đơn giản nhất (và lười nhất) cần làm là tạo một hộp giới hạn cho các điểm từ giá trị lớn nhất và tối thiểu của các giá trị X, Y.

Nếu bạn cần một sự phù hợp chặt chẽ hơn sau đó chứ không phải là đưa ra thuật toán của riêng bạn, điều này có thể là một nơi tốt để bắt đầu:

Các vấn đề liên quan