algorithm - 检查线段是否与从特定点绘制的垂直线相交?

标签 algorithm vector geometry

如图所示:

alt text

我有一组线段。我想检查哪些线段与从给定点 (x0,y0) 绘制的垂直线相交。

(例如:AB 通过了检查,而 BC 没有通过。)

我获得的唯一信息是线段的两个点,(x1,y1)、(x2,y2) 和目标点 (x0,y0)。

是否可以利用这三点推导出一个简单的公式?

提前致谢。

乌曼加

最佳答案

作为背景,如果需要,您可以阅读 dot product ,其 geometric interpretation ,特别是scalar projection .

定义向量v0=(x0,y0)-(x1,y1)和v2=(x2,y2)-(x1,y1)。

那么交点就是

(x1,y1) + ((v0v2)/(v2v2)) v2

如果标量值 (v0v2)/(v2v2 ) 介于 0 和 1 之间。

关于algorithm - 检查线段是否与从特定点绘制的垂直线相交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3508691/

相关文章:

c++ - 将值插入到 vector<entry> 的映射中

c++ - 按 vector 对中的索引删除元素

c++ - 圆线段碰撞 C++ (UE4)

algorithm - 我需要一种算法来将一系列线段合并/加入一系列折线

c++ - 使用 OpenCV 绘制虚线/虚线圆

regex - 将点星正则表达式转换为 NFA

algorithm - 找到 <=200 的毕达哥拉斯三元组 (a,b,c)

java - 如何访问多维 vector 中的元素?

algorithm - 编程两列火车在没有位置数据或通信的情况下相交(逻辑谜题)

c# - 我的合并排序代码有什么问题?