这里是一个简单的问题。假设我有两点:
point 1
x = 0
y = 0
point 2
x = 10
y = 10
假设两点之间有一条海峡线,我将如何以编程方式找出其间的所有坐标...所以上面的示例将返回:
0,0
1,1
2,2
3,3
...
8,8
9,9
10,10
谢谢:)
最佳答案
首先需要求直线的斜率:
m = (y1 - y2) / (x1 - x2)
然后你需要找到直线的方程:
y = mx + b
在您的示例中,我们得到:
y = 1x + b
0 = 1(0) + b
或
y = x
要获得所有坐标,您只需插入所有值 x1 -> x2。在 PHP 中,整个事情看起来像这样:
// These are in the form array(x_cord, y_cord)
$pt1 = array(0, 0);
$pt2 = array(10, 10);
$m = ($pt1[1] - $pt2[1]) / ($pt1[0] - $pt2[0]);
$b = $pt1[1] - $m * $pt1[0];
for ($i = $pt1[0]; $i <= $pt2[0]; $i++)
$points[] = array($i, $m * $i + $b);
这当然会为您提供落在 X 整数值上的所有点的坐标,而不是两点之间的“所有坐标”。
关于PHP 查找两点之间的坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2441362/