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)));