有效地计算两个向量之间的差异

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有效地计算两个向量之间的差异相关的知识,希望对你有一定的参考价值。

我正在编写一个三维框架,它由以不同角度排列的多边形表面组成。在我的代码的某一部分,我想基于光源计算表面的亮度,光源的角度由矢量给出。

更具体地,表面的取向由矢量表示,并且光源也由矢量表示。根据常识,当光直接照射在其上时,或者当矢量的角度差为0时,表面最亮。

然而,在我目前的解决方案中,我需要为每个光计算atan()六次以获得差异,这在计算上是低效的。

有没有更好的办法?

答案

我觉得有。查找Lambert's cosine law。它表示来自漫反射表面的光强度只是光矢量(指向光源)与平面法向矢量之间角度的余弦。因此,您需要做的就是将矢量标准化并采用点积。

以上是关于有效地计算两个向量之间的差异的主要内容,如果未能解决你的问题,请参考以下文章

如何计算word2vec中的差异向量

如何计算 R 中两个数据集的显着差异?

计算两个向量的余弦相似度

计算两个向量的余弦相似度

如何在向量的两个连续元素之间产生差异,如果差异小于 10,则删除以两个零结尾的一个

智能推荐算法基础-余弦相似度计算