PHP 查找两点之间的坐标

标签 php math loops coordinates

这里是一个简单的问题。假设我有两点:

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/

相关文章:

php - '尝试将 HTML 表存储为 PHP 变量,但使用 foreach 循环构建。可能的?

php - 什么方法适合加密 SQLite 数据库,以便在 PHP 服务器上使用?

php - 如何使用数据库中的预定义公式并在javascript中使用它?

精确比较非常大整数(十亿级)的两个指数的算法

php - 从 symfony 2.1 中的实体获取服务容器(Doctrine)

algorithm - 如何切线连接N个相同直径的圆?

c - C中删除所有小数

c# - 这是使用 goto 的安全方法吗?

python - Pandas - 迭代行并比较以前的值 - 更快

vba - 高级过滤器中的循环