Имам малък блок код, който чете 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;
}
}
По-долу е даден пример за първата точка (най-долната точка), която не е включена в точките на полигона.