原题目:wzoi P573
初步分析
这道题之前有《点到直线的距离》一题。

如图,我们不妨来下个定义(名字是乱起的,如果有雷同就以以下定义为准):
对于任意线段l,在其两个端点上分别作垂直于l的直线,若点在两直线之间,则称点在“线段范围内”,否则在“线段范围外”。
这两条直线(蓝色的两条)称为“线段范围界线”。
上图中,点A在线段范围内,点B和点C都在线段范围外。
不难发现,当点在线段范围内,则点到线段的距离即点到线段所在直线的距离,套公式即可。
当点在线段范围外,则点到线段的距离即点到较近的一端点的距离。
于是第一代代码应运而生:
第一代代码思路
输入ABC三点坐标,计算出线段AB所在直线的表达式,利用二直线垂直,斜率相乘得-1,计算出两条界线的表达式。
判断C点是否处于两直线之间,给出相应的答案。
判断C点

作过C的铅垂线交两界线,纵坐标分别为y1,y2,y3,如图所示。
如果y1>y2>y3,则C在线段范围内,否则在线段范围外。
但是当时作图时只考虑到了如此的线段,未考虑水平、铅锤的情况,所以很可惜没做出来(其实是懒得讨论)
大家可以试着讨论一

博客详细介绍了如何计算点到线段的距离,从初步分析到第一代和第二代代码思路,探讨了不同情况下的解决方案,包括点在线段内外的判断和应用勾股定理的方法。
最低0.47元/天 解锁文章
2281

被折叠的 条评论
为什么被折叠?



