Math 如何检查点是否在线阴影中
我真的不知道如何准确地表达这个问题,所以我制作了一个粗略的图形来解释我想问的问题:Math 如何检查点是否在线阴影中,math,geometry,vector-graphics,Math,Geometry,Vector Graphics,我真的不知道如何准确地表达这个问题,所以我制作了一个粗略的图形来解释我想问的问题: 给定一条由两个点组成的线,我如何检查给定点是否在图像中显示的相对于该线的区域内?很抱歉,如果有一个术语我不知道。假设您的线段点是p1和p2,并且您的查询点是q: 计算线段长度b:=|p2-p1 |和直线方向(标准化)z:=(p2-p1)/b和 计算从p1到q的向量,定义为w:=(q-p1) 通过计算q':=w dot z将查询点投影到无限线上。这将为您提供点的位置,就像它从原始位置通过正交路径移动到直线一样 检查
给定一条由两个点组成的线,我如何检查给定点是否在图像中显示的相对于该线的区域内?很抱歉,如果有一个术语我不知道。假设您的线段点是
p1
和p2
,并且您的查询点是q
:
b:=|p2-p1 |
和直线方向(标准化)z:=(p2-p1)/b
和p1
到q
的向量,定义为w:=(q-p1)
q':=w dot z
将查询点投影到无限线上。这将为您提供点的位置,就像它从原始位置通过正交路径移动到直线一样q
:如果q>b
,则您的查询点位于线段阴影之外,超过p2
。如果q<0
,则您的查询点位于线段阴影之外,经过p1
。否则,q
为“内部”基点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相交
有趣地编写代码!作为旁注——这个问题可能与stackoverflow的主题无关:)。我认为可能是这样,但由于我需要从编程概念的角度向我解释这一点,我认为这是一个公平的游戏。谢谢,这很容易理解。这是一个正确的实现吗?请原谅我使用的图形库增加了复杂性。编辑:保存我需要为第5行使用向量距离公式的事实,我现在将其添加到我的代码中