From 1d2d814be76c91ad7b4a4e57c9be41cdefd47903 Mon Sep 17 00:00:00 2001 From: fdai7322 <christoph-anton.schwierz@informatik.hs-fulda.de> Date: Mon, 3 Jun 2024 19:29:49 +0200 Subject: [PATCH] crossproduct --- src/cg/testing.ts | 16 +++++----------- src/cg/utils.ts | 10 ++++++++++ 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/cg/testing.ts b/src/cg/testing.ts index d20e521..60237e1 100644 --- a/src/cg/testing.ts +++ b/src/cg/testing.ts @@ -3,29 +3,23 @@ import { vecNormalize } from "./utils"; import { vecLength } from "./utils"; import { vecDotProduct } from "./utils"; import { vecAngle } from "./utils"; +import { vecCrossProduct } from "./utils"; const pg = new Playground(); // Some vectors const v = [1,0,1] -const w = [0,0,2] +const w = [0,2,2] -const vNormalized = vecNormalize(v); -const wNormalized = vecNormalize(w); - -const dotProduct = vecDotProduct(v, w); -const normalizedDotProduct = vecDotProduct(vNormalized, wNormalized); +const cp = vecCrossProduct(w, v); // Visualize pg.gridXZ(); // Grid pg.visVector(v,{color:"orange",label:"V"}); pg.visVector(w,{color:"red",label:"W"}); +pg.visVector(cp,{color:"grey",label:"crossproduct"}) 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 +console.log("normalized dotProduct:" + vecDotProduct(vecNormalize(v), vecNormalize(w))); diff --git a/src/cg/utils.ts b/src/cg/utils.ts index 9582fe4..fc005a4 100644 --- a/src/cg/utils.ts +++ b/src/cg/utils.ts @@ -62,4 +62,14 @@ export function vecAngle(vecOne: Array<number>, vecTwo: Array<number>){ let degrees = radiant * 180 / Math.PI; 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 -- GitLab