计算2个向量的夹角 dot product

vectors-dot-product

/* https://www.mathsisfun.com/algebra/vectors-dot-product.html */

function Vector3(x, y, z) {
	this.x = x;
	this.y = y;
	this.z = z;
}

Vector3.prototype.magnitude = function() {
	return Math.sqrt(this.x*this.x + this.y*this.y + this.z*this.z);
};

Vector3.dotProduct = function(/* Vector3 */a, /* Vector3 */b) {
	return a.x*b.x + a.y*b.y + a.z*b.z;
};

Vector3.theta = function(/* Vector3 */a, /* Vector3 */b) {
	var ma = a.magnitude(), mb = b.magnitude();
	var dotX = Vector3.dotProduct(a, b);
	return Math.acos(dotX / (ma * mb))/Math.PI * 180; /* degree */
};

计算2个向量的夹角 dot product_第1张图片

var a = new Vector3(4,8,10), b = new Vector3(9,2,7);
console.log(Vector3.theta(a, b));

粘贴到浏览器控制台

计算2个向量的夹角 dot product_第2张图片

38.22886930505464 

a · b = |a| × |b| × cos(θ)

Math.sqrt

你可能感兴趣的:(数学建模)