2015-04-27 4 views
0

У меня есть массив точек (x, y), и я хочу использовать его, чтобы увидеть, находится ли точка (x2, y2) в многоугольнике, создавшем мое облако точек. Как я могу проверить это?Создайте многоугольник из облака точек

Я нашел http://www.pointclouds.org/documentation/tutorials/hull_2d.php, но я действительно не знаю, как это сделать с Java.

Единственная реальная цель - создать метод проверки того, находится ли точка в или из многоугольника, мне не нужно создавать многоугольник, который я думаю.

+0

ссылку вы вывесили, кажется, использует внешнюю библиотеку. Вы можете попробовать и сделать то же самое. Afaik существуют чистые библиотеки физики Java или обертки JNI для физических движков, таких как Bullet или ODE. В качестве альтернативы вы можете попробовать найти код, который создает выпуклый/вогнутый корпус из облака точек - не должно быть слишком сложно. – Thomas

ответ

3

Просто используйте java.awt.Polygon. Конструктор для создания Polygon

public Polygon(int xpoints[], int ypoints[], int npoints) 

чем использовать любой из

public boolean contains(Point2D p) 
public boolean contains(double x, double y) 

прохождения точки х и у

+0

Так что я могу просто сделать Polygon poly = new Polygon (points.getX(), points.getY(), points.getLength()) 'где points .getX возвращает все значения X моих точек, getY возвращает все значения Y, и getLength количество точек? – Supamiu

+0

@Supamiu правильно, при условии, что ваши баллы в порядке. Если у вас просто упорядоченный набор точек, вам нужно либо вычислить те, которые определяют корпус, либо правильный порядок для ваших входных точек. – Thomas

Смежные вопросы