【发布时间】:2016-03-15 18:20:12
【问题描述】:
我试图确定一条线是否与一个圆相交,为此我试图首先计算一个点(圆心)在投影到线上时是否在该线的边界内。
我找到了一个例子here,但我无法理解其中的一部分。它创建两个向量,从线的一端到点,从线的一端到另一端。没关系。
vec2 vecToPoint = point - lineA;
vec2 vecLine = lineB - lineA;
然后它取这两个向量的点积并将它们除以,将结果用作投影点沿线的偏移量。
float coef = dot(vecToPoint,vecLine) / dot(vecLine,vecLine);
return vec2( lineA.x + (coef * vecLine.x), lineA.y + (coef * vecLine.y) );
这是我不明白的部分。我已经做了归一化向量的点积来获得角度,但是我以前从未在点积中看到过非归一化向量,更不用说划分结果了。
有人可以向我解释这是如何工作的吗?它在这里做什么?
【问题讨论】:
标签: vector 2d dot-product