我有一张从中创建一些行的图像。我已经保存了行的起点和终点。线基本上是矩形的长边,在图像中边界为白色斑点。矩形放置在某个圆上。图像如下图所示

问题是,当圆的下部形成矩形时,起始点可以认为是圆的最低点,即靠近圆的边缘,但是当矩形的矩形形成在圆的上部时,如最后所示很难找到要选择的点作为起点,以找出靠近表盘中心的起点。

关于我如何在圆的上部区域交换线点,是否有任何解决方法。请指导我,因为我现在没有这个想法。

这是选择矩形最长边并打印其点的代码

int maxIndex = 0;
for (int a = 1; a < length.length; a++){
    double newnumber = length[a];
    if ((newnumber > length[maxIndex])){
        maxIndex = a;
    }
}
System.out.println("Start= "+pts[maxIndex].toString()+" End= "+pts[(maxIndex+1)%4].toString()+", Length="+length[maxIndex]);

问候,

最佳答案

也许这是一个错误,但是首先想到的是对角点的Y值求和,尽管不要除以4(这不是必需的)。如果它们是以上的阈值(当矩形为水平时为4 * sum),那么您知道它是“向上”的。

在IF语句中使用此代码可切换上下情况的代码...

int totalY = 0;

for(int i = 0; i < 4; i++){
    totalY += vectorOfYourPoints[i].y;
}

if(totalY > someThresholdYoullSet){
    //do the thing you need to do if it's UP
} else {
    //do the thing you need to do if it's DOWN
}

10-08 19:49