Aloex Asked:2022-06-07 19:31:13 +0000 UTC2022-06-07 19:31:13 +0000 UTC 2022-06-07 19:31:13 +0000 UTC 检查是否可以通过 3 个向量绘制直线 772 你怎么能确定/检查通过(比方说)3个向量你可以画一条直线来使用敌人的能力。 例如,这里我有 3 个敌方英雄。每个 I 的位置可以得到 Vector(x, y, z)。 如果你得到一个敌人的位置,这就是它的样子 接下来,我需要计算敌人是否在一条线上才能使用终极能力。 我想补充一点,如果你自己做,即 用鼠标悬停在某个点上,然后可以绕一圈。我夹住它的中心不会改变,但它的极点 - 是的 该能力本身被使用。如您所见,这是一堵墙,我也可以得到它的坐标 据我了解,要想筑起一堵墙,击中所有英雄,首先要计算这是否可能,以及敌人是否在一条线上。我怎样才能做到这一点? геометрия 1 个回答 Voted Best Answer MBo 2022-06-07T20:26:26Z2022-06-07T20:26:26Z 拥有三个点 P1、P2、P3,你会得到两个向量 V1 = P2 - P1 V2 = P3 - P1 并考虑他们的向量积(二维 - 叉积) A = V1 x V2 = V1.X * V2.Y - V1.Y * V2.X 为了消除错误(必须假设在您的条件下一个小角度与零相同),归一化为特征大小 R = max(abs(V1.X), abs(V2.X), abs(V1.Y), abs(V2.Y)) 并进行比较 if (abs(A) < R * R * Eps) значит - на одной прямой 其中 Eps 是一个小值 - 例如,0.01 或 0.000001 - 取决于您的任务要求。
拥有三个点 P1、P2、P3,你会得到两个向量
并考虑他们的向量积(二维 - 叉积)
为了消除错误(必须假设在您的条件下一个小角度与零相同),归一化为特征大小
并进行比较
其中 Eps 是一个小值 - 例如,0.01 或 0.000001 - 取决于您的任务要求。