0

我真的不知道如何准确地表达这个问题,所以我制作了一个粗略的图表来解释我想问的问题:在此处输入图像描述

给定一条由两点组成的线,我将如何检查给定点是否在相对于图像中显示的线的区域内?对不起,如果有一个我不知道的术语。

4

2 回答 2

1

假设您的线段点是p1p2,并且您的查询点是q

  1. 计算线段长度b := |p2 - p1|和线方向(归一化)z := (p2 - p1) / b

  2. 计算从p1到的向量q,定义为w := (q - p1)

  3. 通过计算将查询点投影到无限线上q' := w dot z。这为您提供了点的位置,就好像它从原始位置通过正交路径移动到线一样。

  4. 检查q:如果q > b您的查询点位于线段阴影之外,则过去p2。如果q < 0那么您的查询点位于线段阴影之外,则过去p1. 否则,q就是“内”。

于 2013-05-25T04:42:18.387 回答
0

基点 A、基点 B、线 AB、AD 和 BE(其中 DE 与 AB 平行,且距 AB 比 C 远。如果 CA 或 CB 与 AD 或 BE 相交,则 C 不在目标区域内。如果 CA 和 CB 都没有与AD或BE相交,则C在目标区域内。如果CA和CB都与AD和BE相交,则C在AD或BE上。

在你左边的例子中,ABC 是一个不与 AD 或 BE 相交的三角形。在你右边的例子中,ABC 是一个三角形,CB 与 AD 相交。

玩得开心编码!

于 2013-05-25T04:45:35.570 回答