java-使路径更密集?

时间:2014-09-20 08:02:08

标签: java geometry

我在JAVA中有一个点数组列表。 我想添加更多点,以便路径更密集。 我应该怎么做呢?

我制作了这张图片以便更好地解释

enter image description here

1 个答案:

答案 0 :(得分:1)

让我们考虑二维折线A(x1,y1)和B(x2,y2)中的两个点。

我们可以使用这两个点AB建立直线方程。

等式的常见形式为:y = k*x + b,其中kb是常量。

使用AB坐标,我们建立了一个方程式系统:

k*x1 + b = y1
k*x2 + b = y2

求解这个等式,我们得到kb常数,因此我们建立了线方程。

之后,将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

让我们在 AB之间找到点。

我们将点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!

就是这样。