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

crossproduct

parent e59db64c
No related branches found
No related tags found
No related merge requests found
...@@ -3,29 +3,23 @@ import { vecNormalize } from "./utils"; ...@@ -3,29 +3,23 @@ import { vecNormalize } from "./utils";
import { vecLength } from "./utils"; import { vecLength } from "./utils";
import { vecDotProduct } from "./utils"; import { vecDotProduct } from "./utils";
import { vecAngle } from "./utils"; import { vecAngle } from "./utils";
import { vecCrossProduct } from "./utils";
const pg = new Playground(); const pg = new Playground();
// Some vectors // Some vectors
const v = [1,0,1] const v = [1,0,1]
const w = [0,0,2] const w = [0,2,2]
const vNormalized = vecNormalize(v); const cp = vecCrossProduct(w, v);
const wNormalized = vecNormalize(w);
const dotProduct = vecDotProduct(v, w);
const normalizedDotProduct = vecDotProduct(vNormalized, wNormalized);
// Visualize // Visualize
pg.gridXZ(); // Grid pg.gridXZ(); // Grid
pg.visVector(v,{color:"orange",label:"V"}); pg.visVector(v,{color:"orange",label:"V"});
pg.visVector(w,{color:"red",label:"W"}); pg.visVector(w,{color:"red",label:"W"});
pg.visVector(cp,{color:"grey",label:"crossproduct"})
console.log("v length:" + vecLength(v)); console.log("v length:" + vecLength(v));
console.log("w length:" + vecLength(w)); console.log("w length:" + vecLength(w));
console.log("dotProduct:" + dotProduct); console.log("normalized dotProduct:" + vecDotProduct(vecNormalize(v), vecNormalize(w)));
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
...@@ -62,4 +62,14 @@ export function vecAngle(vecOne: Array<number>, vecTwo: Array<number>){ ...@@ -62,4 +62,14 @@ export function vecAngle(vecOne: Array<number>, vecTwo: Array<number>){
let degrees = radiant * 180 / Math.PI; let degrees = radiant * 180 / Math.PI;
return degrees; return degrees;
} }
export function vecCrossProduct(vecOne: Array<number>, vecTwo: Array<number>){
let crossProduct : Array<number> = new Array;
crossProduct[0] = vecOne[1]*vecTwo[2] - vecOne[2]*vecTwo[1];
crossProduct[1] = vecOne[2]*vecTwo[0] - vecOne[0]*vecTwo[2];
crossProduct[2] = vecOne[0]*vecTwo[1] - vecOne[1]*vecTwo[0];
return crossProduct;
}
// //
\ 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