JAVA - 返回两点之间的数组元素

我一直在试图做一个遍历两个指定点之间的所有数组元素的代码,但我被卡住了。 让我们假设它就像一个数组:JAVA - 返回两点之间的数组元素

int[][] new_array = new int[100][100]; 

,我如何获得可以在我们之间直线的所有元素的说

new_array[17][2]; 

new_array[5][90]; 

这是我想实现:

回答:

让我们假设你的数组是一个笛卡尔坐标系统的first quadrant。第一列位于Y轴上,最后一行位于X轴上。

有了这个假设,您可以找到一个函数来描述阵列中任意两点之间的直线。

你需要解决的功能:

y = ax + b 

这是一个标准的linear function。你有两点,解决你会发现你的方程(值为ab)。

当您知道方程式时,您需要为每个x值计算阵列中的点数。这样做,你会发现所有y值低于/在线上。

回答:

继@Marcin Pietraszek的答案该函数可以通过这种方式来获得:

考虑到两个点(A,B)和(c,d),通过这两个点通过直线被

给出

a + K * (x - a) = c AND b + K (y - b) = d 

其中K是标量数字。

这解析为:

y=((d - b) * x - (d - b) * a + (c - a) * b)/(c - a)

因此能够满足这一条件将在直线上的任何一点(x, y)

您将需要通过矩阵,逐个检查以查看哪些点符合条件。

如果你只想要段内的点,那么你需要检查边界。

以上是 JAVA - 返回两点之间的数组元素 的全部内容, 来源链接: utcz.com/qa/258186.html

回到顶部