У меня есть небольшой блок кода, который считывает значения Line2D из массива с именем lineList (в другом классе) и сохраняет их в новом массиве с именем list. отсюда я пытался преобразовать все значения линии в точки многоугольника (точка для каждой координаты x, y конца линии).
до сих пор он работает, но не работает для самой первой точки первой строки в массиве (это то, что я подозреваю), который добавлен, и у меня возникли проблемы с поиском решения для этого, поскольку я пытался включить это в первый оператор if.
Я буду очень признателен за любую помощь, которую кто-либо может предоставить мне в этом.
Ниже приведен код, который я использую для добавления точек из значений Line2D:
Polygon p = new Polygon();
ArrayList<Line2D> list = new ArrayList<Line2D>();
Color pixel;
boolean firstTime = true;
list = segmentation.getLineList();
//loop through lineList and add all x and y coordinates to relative x and y arrays
for(int i = 0; i < list.size(); i++) {
if(firstTime == true){
Line2D line = list.get(i);
Point2D startPoint = line.getP1();
Point2D endPoint = line.getP2();
int startX = (int) startPoint.getX();
int startY = (int) startPoint.getY();
int endX = (int) endPoint.getX();
int endY = (int) endPoint.getY();
p.addPoint(p.xpoints[i] = startX, p.ypoints[i] = startY);
p.addPoint(p.xpoints[i] = endX, p.ypoints[i] = endY);
startPoint = null;
endPoint = null;
line = null;
firstTime = false;
}
else {
Line2D line = list.get(i);
Point2D endPoint = line.getP2();
int endX = (int) endPoint.getX();
int endY = (int) endPoint.getY();
p.addPoint(p.xpoints[i] = endX, p.ypoints[i] = endY);
endPoint = null;
line = null;
}
}
Ниже приведен пример первой точки (самой нижней точки), не включенной в точки многоугольника.