您好我在我正在处理的代码中遇到这方面的一点麻烦。它处理点并返回true或不返回它是否与我的arrayList of Points中的其他点对齐。到目前为止我的代码在这里:
private List<Point> point;
public void check()
{
for (int i = 0; i < point.Count; i++)
{
validSpot(i);
}
}
答案 0 :(得分:4)
请注意,您的图表与阵列存储的方式相反。
您可以将索引视为图表上的点。找到落在对角线上的是什么斜坡拦截形式。 y = m x + b
。由于您只需要对角线,因此有效斜率限制为1和-1。然后你只需要定义通过兴趣点的直线,并测试所讨论的点是否满足m = -1 or m = 1
的一个等式。由于斜率已知,因此您只需要一个点来定义直线。
public bool func(int[] knownPt,int xTest, int yTest)
{
//knownPt is int[]{x,y}
// y = m*x + (yi - xi)
return yTest== xTest + knownPt[1] - KnownPt[0] || yTest == -xTest +knownPt[1] + KnownPt[0];
}
这里的步骤是m = -1
yi = -xi + b
yi + xi = b
since b = yi + xi
y = -x + (yi + xi)