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

时间:2017-12-02 20:25:24

标签: java arrays

我一直在尝试创建一个遍历两个指定点之间的所有数组元素的代码,但是我被卡住了。 让我们假设它是一个类似的数组:

xmlns:app="http://schemas.android.com/apk/res-auto"

我怎样才能得到所有直线之间的元素,比如说

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

new_array[17][2];

这就是我想要实现的目标:

enter image description here

2 个答案:

答案 0 :(得分:0)

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

有了这个假设,你就可以找到一个描述数组中任意两点之间直线的函数。

你需要解决这个问题:

y = ax + b

这是一个标准linear function。你有两点,解决了你会找到你的等式(ab的值)。

当您知道等式时,您需要为每个x值评估数组中的点。这样做,您将找到低于/高于/高于该行的所有y值。

答案 1 :(得分:0)

按照@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)都将在直线上。

您将需要浏览矩阵,逐个检查以确定哪些点符合条件。

如果您只想要细分中的点,那么您需要检查边界。