我有一小段代码从名为 lineList 的数组(在不同的类中)读取 Line2D 值,并将它们存储在名为 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;
}
}
下面是第一个点(最低点)不包含在多边形点中的示例。