证明四点构成矩形

今天在算法群里有人提出一个问题:

在二维数轴上给四个点的坐标,证明四点构成矩形。

这道题算是一道数学题,解决方案有很多:

  1. 两对角线交点到四点距离相等
  2. 某点与其他三点的距离的勾股定理成立且 ab//cd 或最长距离的点在其他两点之间
  3. 一个点到三个点之间的斜率。

对角线交点

在学校学几何的时候,我们知道矩形的对角线相交点到四个角的距离相等,可以用这个方法求解。

首先要计算对角线相交点的坐标,然后分别计算两点之间的距离

这的解法是很多人都能想到的,思路很简单。

勾股定理&&($ab//dc$||($k_c$<$k_b$&&$k_c$>$k_d$)||($\overlinesegment{p_a’ p_c} \parallel \overlinesegment{p_b p_d}$))

这个方法巧妙的把四个点的问题转化为直角三角形边的问题。为什么可以这么做?

首先,要形成矩形,就必须邻边两两垂直,由垂直由能想到直角三角形。只要三条线段构成直角三角形,就成功了一大半。

然后用三种办法证明点 c 能和其他三点构成矩形。方法有三,思路也各有不同。

$ab//dc$ || $ac//db$

相对的两条边两两平行与上面的相邻角是直角就能证明是矩形。

$k_c$<$k_b$&&$k_c$>$k_d$

斜率$k_c$在$k_b$和$k_d$之间,只要 c 点在 bd 之间就构成矩形,但是这要求 a 点是左下角或者左侧。

$\overlinesegment{p_a’ p_c} \parallel \overlinesegment{p_b p_d}$

换个思路,我们只要求出点 a 与线段 bd 的对称点$p_a’$与点 c 构成的线段与点 b 与点 c 构成的线段平行,也可证明是矩形。

斜率求解

这个方法其实就全部用斜率求解了。

结合方法$\overlinesegment{p_a’ p_c} \parallel \overlinesegment{p_b p_d}$和$\overlinesegment{p_a p_b} \bot \overlinesegment{p_c p_d}$,就能证明四点构成矩形。


证明四点构成矩形
https://bubao.github.io/posts/b7306edb.html
作者
一念
发布于
2021年4月7日
许可协议