JSFiddle - React, Tailwind, and code Playground

by Michael Prosser

JavaScript

var vector3 = {

	dot: function(A,B){
  
  	return A.x*B.x + A.y*B.y + A.z*B.z;
  
  },
  
  cross: function(A,B){
  	
    var x = A.y * B.z - B.y * A.z
		var y = A.z * B.x - B.z * A.x
		var z = A.x * B.y - B.x * A.y

  	return { x: x, y: y, z: z };
  
  },
  
  magnitude: function(A){
  
  	return Math.sqrt((A.x * A.x) + (A.y * A.y) + (A.z * A.z));
  
  },
  
  normalize: function(A){
  
  	var length = this.magnitude(A);
    
    var x = A.x/length;
  	var y = A.y/length;
  	var z = A.z/length;
    
    return { x: x, y: y, z: z };
  
  }

}

var A = {
	x: 100,
  y: 10,
  z: 100
};

var B = {
	x: 100,
  y: 10,
  z: 0
};

console.log(Math.cos(vector3.dot(A,B)));


//console.log(Math.acos(vector3.dot(vector3.normalize(A),vector3.normalize(B))));

//console.log(vector3.cross(vector3.normalize(A),vector3.normalize(B)));