Convert a list java.awt.geom.Point2D to a java.awt.geom.Area

戏子无情 提交于 2019-12-10 14:57:20

问题


I have a set of points that i want to turn into a closed polygon in Java. I'm currently trying to use java.awt.geom.Point2D and java.awt.geom.Area but can't figure out how to turn a group of the points into an Area.

I think I can define a set of Line2Ds based on the points and then add those to the Areas, but that's a lot of work and I'm lazy. So is there an easier way to go.

The problem is I have a list of lat/lon coordinates and want to build up an area that I can use for hit testing.

Non-core Java libraries are a possibility as well.

Update, I looked at using java.awt.Polygon but it only supports ints and I'm operating with doubles for the coordinates.


回答1:


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

Hear that, "customer"? You should be using GeneralPath, even though the absence of Polygon2D since the late 1990s is an obvious monster-truck-sized hole in the API.




回答2:


If you are actually working with Geodetic lat/lon values, you can actually use OpenMap to do some of this work. I just spent some time using the Geo class in that API to bounce an object around an area defined by a polygon of lat/lon points. There are intersection calls and everything and all of the math is done spherically so that the points are more correct as far as projections go.




回答3:


The simplest (and laziest) thing to do is to create a bounding box for the points from the maximum and minimum of the X, Y ordinate values.

If you need a closer fit then rather than devise your own algorithm, this might be a good place to start:



来源:https://stackoverflow.com/questions/1369313/convert-a-list-java-awt-geom-point2d-to-a-java-awt-geom-area

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!