threejs 三维向量 Vector3 向量点乘dot

threejs yekong

在Three.js中,Vector3的点乘(Dot)是一种向量运算,用于计算两个三维向量的点积。其计算公式与Unity3D中的Vector3.Dot相同,对于向量 V1 = (x1, y1, z1) ,向量 V2 = (x2, y2, z2),向量A点乘向量 B的计算公式为: V1·V2 = x1 * x2 + y1 * y2 + z1 * z2。同时,点积还可以表示为 V1·V2 = |V1||V2|Cosθ,其中θ是两个向量的夹角。

点积的结果是一个标量,即一个数值,而不是向量。这一点需要与叉积进行区别。通过点积的正负值,可以判断两个向量的相对位置,即一个向量是否在另一个向量的正面或反面[5]。同时,通过点积还可以得到两个向量之间的夹角,计算公式为:夹角= arccos(a·b / (|a|·|b|))。

在Three.js中,可以通过Vector3对象的dot方法来进行点积运算。例如,如果有两个Vector3对象v1和v2,可以通过v1.dot(v2)来计算它们的点积。

点乘是向量的一种运算规则,点乘也有其它称呼,比如点积、数量积、标量积。102x公

threejs三维向量 Vector3 封装了一个点乘相关的方法dot()

已知向量a和向量b
已知两个向量a和b,默认夹角是45度。


const a = new THREE.Vector3 (10, 10, 0); 
const b = new THREE.Vector3(20, 0, 0);

向量点乘dot()语法

a.dot(b) 表示向量a与向量b点乘,返回结果是一个数字(标量)。

// 向量a与向量b点乘,返回结果是一个数字
const dot = a.dot(b);
console.1og('点乘结果',dot);

点乘dot()几何含义

点乘几何含义

记住a.dot(b)的几何含义是向量a在向量b上投影长度与向量b相乘,或者说
向量a长度*向量b长度*cos(ab夹角)

单位向量点乘含义(计算向量夹角余弦值)

假设两个向量的夹角是s,两个向量的单位向量进行点乘dot(),返回的结果就是夹角s的余弦值 cos(s)

// 计算向量a与向量b夹角的余弦值:单位向量的点乘

const cos = a.normalize().dot(b.normalize())

夹角余弦值转角度值

// 反余弦计算向量夹角弧度

const rad = Math.acos(cos);
//弧度转有度

const angle=THREE.MathUtils.radToDeg(rad)

学习笔记

当前内容为 threejs视频教程 Three.js可视化系统课程WebGL -【Threejs 进阶】3. 向量点乘、叉乘-向量点乘dot-学习笔记

喜欢