【问题标题】:Using dot product of non-normalized vectors to project a point onto a line?使用非归一化向量的点积将点投影到线上?
【发布时间】: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


    【解决方案1】:

    我终于找到了一个video,它解释了这背后的数学原理。现在说得通了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-12
      • 1970-01-01
      • 2016-07-14
      • 2012-09-03
      • 1970-01-01
      相关资源
      最近更新 更多