我在JAVA中有一个点数组列表。 我想添加更多点,以便路径更密集。 我应该怎么做呢?
我制作了这张图片以便更好地解释
答案 0 :(得分:1)
让我们考虑二维折线A(x1,y1)和B(x2,y2)中的两个点。
我们可以使用这两个点A
和B
建立直线方程。
等式的常见形式为:y = k*x + b
,其中k
和b
是常量。
使用A
和B
坐标,我们建立了一个方程式系统:
k*x1 + b = y1
k*x2 + b = y2
求解这个等式,我们得到k
和b
常数,因此我们建立了线方程。
之后,将X
坐标替换为此等式,您将获得Y
坐标。
因此,我们需要在A和B之间找到点。
我们将x1 + 1
替换为X
此等式,以获得相关的Y
坐标。
之后,我们将x1 + 2
替换为X
到此等式中以获得相关的Y
坐标,依此类推,直到获得点X2
坐标B
}}
请考虑以下示例。
我们有A (2, 2)
和B (5, 3)
构建方程系统:
2 * k + b = 2
5 * k + b = 3
b = 2 - 2 * k
5 * k + 2 - 2 * k = 3
3 * k + 2 = 3
3 * k = 1
k = 1/3
b = 2 - 2/3
b = 4/3
和我们的A-B线方程是:
y = x/3 + 4/3
让我们在 A
和B
之间找到点。
我们将点A的x坐标增加到1,并找到该点的Y坐标。
x = 3
y = 1 + 4/3 = 7/3
现在,使用x = 4
x = 4
y = 4/3 + 4/3 = 8/3
点B
的x坐标等于5,只需检查:
x = 5
y = 5/3 + 4/3 = 3
correct!
就是这样。