在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-学习笔记