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。你有两点,解决你会发现你的方程(值为a
和b
)。
当您知道方程式时,您需要为每个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