java - 如何修改我的 for 循环,使其不比较第一个和最后一个,而是将其他所有内容与最后一个进行比较?

标签 java polygon

例如,我这里有一个点列表

列表 = <1,1>、<99,99>、<199,1>、<210,99>

我希望 <1,1> 与 <99,99> 和 <199,1> 进行比较,但不与 <210,99> 进行比较 但其他一切都可以与 <210,99> 进行比较

基本上第一个和最后一个元素无法比较,因为这意味着我的多边形是闭合的。

    for(int i = 0; i < this.points.size()-1; i++) {
        Point firstPoint = this.points.get(i);
        for(int j = i+1; j < this.points.size(); j++)   {
            Point secondPoint = this.points.get(j);

            Line2D line1 = new Line2D.Double(firstPoint.getX(), firstPoint.getY(), secondPoint.getX(), secondPoint.getY());
            Line2D line2 = new Line2D.Double(((Line) aLine).getStart().getX(),((Line) aLine).getStart().getY(),((Line) aLine).getEnd().getX(),((Line) aLine).getEnd().getY());
            boolean result = line2.intersectsLine(line1);
            if(!result) {

        }

最佳答案

您可以按如下方式实现所需的输出:

boolean isFirstElement = true;
for (int i = 0; i < pList.size() - 1; i++) {
    Point pointOne = pList.get(i);
    for (int j = i + 1; j < pList.size(); j++) {
        Point pointTwo = pList.get(j);
        if (j + 1 == pList.size() && isFirstElement) {
            continue;
        } else {
            // your comparison logic goes here...
        }
    }
    isFirstElement = false;
}

关于java - 如何修改我的 for 循环,使其不比较第一个和最后一个,而是将其他所有内容与最后一个进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49891945/

相关文章:

java子图显示

java - 使用 AssetManager.list 列出子目录中的 Assets

java - 似乎缺少用于 MS Access 的 ODBC 驱动程序(Windows 64 位)

java - 在 Java 中旋转多边形

r - 用 R 计算多个多边形之间的最小距离

java - 如何将我的通话设置为对其他人保密?

java - 如何使用 ConnectionService 获取 Call UI Presentation

geolocation - 雪花查询以获取多边形内的数据

html - 以图像为背景和悬停效果的 Google map 自定义多边形

python - 查找最大面积的多边形内接于较大的多边形