Php 三角形中第三点的坐标
鉴于: 我们必须找到:Php 三角形中第三点的坐标,php,geometry,cartesian-coordinates,Php,Geometry,Cartesian Coordinates,鉴于: 我们必须找到: C(a3,b3) 我有两个点A(x,y)和B(p,q)的坐标,但我想找到第三个点C(m,n)的坐标。 我知道A和B,A和C之间的距离,A和C之间的角度是90度
C(a3,b3)
我有两个点A(x,y)和B(p,q)的坐标,但我想找到第三个点C(m,n)的坐标。
我知道A和B,A和C之间的距离,A和C之间的角度是90度<我知道这是一个简单的毕达哥拉斯定理。但是我如何在php中实现它,公式是什么?让
$x,$y
和$p,$q
作为A和B的给定坐标,进一步调用$d
A和C之间的已知距离和$d0
A和B之间的已知距离。通过做一点数学运算,你可以得到以下公式(这里我直接用PHP实现它):
还有第二种解决方案:
$m = $x + ($q - $y) * $d / $d0;
$n = $y - ($p - $x) * $d / $d0;
编辑:下面是我如何得到方程的:我将坐标为($p-$x,$q-$y)
的向量AB旋转90度,得到($q-$y,-($p-$x))
和($q-$y),$p-$x)
(取决于顺时针还是逆时针)然后用$d/$d0
(它们的长度之比)缩放得到向量AC。现在我只是用($x,$y)
转换向量,得到($m,$n)
也许在PHP中使用vector类甚至整个库可以更优雅地实现这一点,但我认为对于这个简单的计算,“手工”实现它要容易得多.C点有两种可能性,你想得到哪一种?我必须找到这两种可能性。好的,我在我的答案中公布了这两种可能性。非常感谢。但是你能告诉我你使用了哪一个公式吗?哪一个方程或定理。对未来会有帮助。我没有使用毕达哥拉斯定理或任何其他方程。相反d、 我只是简单地将向量AB旋转90度(第一种可能是顺时针方向,第二种可能是逆时针方向),然后按
$d/$d0
缩放它以获得正确的长度。
$m = $x + ($q - $y) * $d / $d0;
$n = $y - ($p - $x) * $d / $d0;
$m = $x - ($q - $y) * $d / $d0;
$n = $y + ($p - $x) * $d / $d0;