Skip to content
Snippets Groups Projects
Commit e59db64c authored by Christoph-Anton Schwierz's avatar Christoph-Anton Schwierz
Browse files

vecAngle

parent ceb10a64
No related branches found
No related tags found
No related merge requests found
import Playground from "./playground";
import { vecNormalize } from "./utils";
import { vecLength } from "./utils";
import { vecDotProduct } from "./utils";
import { vecAngle } from "./utils";
const pg = new Playground();
// Some vectors
const v = [2,2,3]
const v = [1,0,1]
const w = [0,0,2]
const normalized = vecNormalize(v);
const vNormalized = vecNormalize(v);
const wNormalized = vecNormalize(w);
console.log(vecLength(normalized));
const dotProduct = vecDotProduct(v, w);
const normalizedDotProduct = vecDotProduct(vNormalized, wNormalized);
// Visualize
pg.gridXZ(); // Grid
pg.visVector(v,{color:"orange",label:"V"});
pg.visVector(normalized,{color:"red",label:"normalized"});
pg.visVector(w,{color:"red",label:"W"});
console.log("v length:" + vecLength(v));
console.log("w length:" + vecLength(w));
console.log("dotProduct:" + dotProduct);
console.log("vnormalized length:" + vecLength(vNormalized));
console.log("wnormalized length:" + vecLength(wNormalized));
console.log("normalizedDotProduct:" + normalizedDotProduct);
console.log("angle v w:" + vecAngle(v, w));
\ No newline at end of file
......@@ -53,4 +53,13 @@ export function vecDotProduct(vecOne: Array<number>, vecTwo: Array<number>){
let dotProduct = vecOne[0]*vecTwo[0] + vecOne[1]*vecTwo[1] + vecOne[2]*vecTwo[2];
return dotProduct;
}
export function vecAngle(vecOne: Array<number>, vecTwo: Array<number>){
//calculate radiant
let radiant = Math.acos(vecDotProduct(vecOne, vecTwo) / (vecLength(vecOne) * vecLength(vecTwo)))
//convert into degrees
let degrees = radiant * 180 / Math.PI;
return degrees;
}
//
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment