我有一张从中创建一些行的图像。我已经保存了行的起点和终点。线基本上是矩形的长边,在图像中边界为白色斑点。矩形放置在某个圆上。图像如下图所示
问题是,当圆的下部形成矩形时,起始点可以认为是圆的最低点,即靠近圆的边缘,但是当矩形的矩形形成在圆的上部时,如最后所示很难找到要选择的点作为起点,以找出靠近表盘中心的起点。
关于我如何在圆的上部区域交换线点,是否有任何解决方法。请指导我,因为我现在没有这个想法。
这是选择矩形最长边并打印其点的代码
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
}