From bb1a14d4d3a1c26a5d48c8e54db6ede3416ea83e Mon Sep 17 00:00:00 2001 From: fdai7322 <christoph-anton.schwierz@informatik.hs-fulda.de> Date: Mon, 3 Jun 2024 18:31:30 +0200 Subject: [PATCH] vecNormalize --- index.html | 5 +++-- src/cg/testing.ts | 18 ++++++++++++++++++ src/cg/utils.ts | 15 +++++++++++++++ 3 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 src/cg/testing.ts diff --git a/index.html b/index.html index 0b8fd46..fcaa367 100644 --- a/index.html +++ b/index.html @@ -13,7 +13,8 @@ <script type="module" src="/src/cg/pgIntro.ts"></script> <script type="module" src="/src/cg/vector.ts"></script> <script type="module" src="/src/cg/perspectiveDivide.ts"></script> - <script type="module" src="/src/cg/walkToVec.ts"></script--> - <script type="module" src="/src/cg/basis.ts"></script> + <script type="module" src="/src/cg/walkToVec.ts"></script> + <script type="module" src="/src/cg/basis.ts"></script--> + <script type="module" src="/src/cg/testing.ts"></script> </body> </html> diff --git a/src/cg/testing.ts b/src/cg/testing.ts new file mode 100644 index 0000000..58ed4da --- /dev/null +++ b/src/cg/testing.ts @@ -0,0 +1,18 @@ +import Playground from "./playground"; +import { vecNormalize } from "./utils"; +import { vecLength } from "./utils"; + +const pg = new Playground(); + +// Some vectors +const v = [2,2,3] + +const normalized = vecNormalize(v); + +console.log(vecLength(normalized)); + +// Visualize +pg.gridXZ(); // Grid + +pg.visVector(v,{color:"orange",label:"V"}); +pg.visVector(normalized,{color:"red",label:"normalized"}); diff --git a/src/cg/utils.ts b/src/cg/utils.ts index fdd353b..f390d67 100644 --- a/src/cg/utils.ts +++ b/src/cg/utils.ts @@ -33,4 +33,19 @@ export function vecLength(vec: Array<number>){ length = Math.sqrt(vec[0]*vec[0] + vec[1]*vec[1] + vec[2]*vec[2]); return length; } + +export function vecNormalize(vec: Array<number>){ + let computedLength = vecLength(vec); + if(computedLength == 0){computedLength = 1}; + + let inverse = 1 / computedLength; + + let normalized: Array<number> = new Array; + + normalized[0] = vec[0] * inverse; + normalized[1] = vec[1] * inverse; + normalized[2] = vec[2] * inverse; + + return normalized; +} // \ No newline at end of file -- GitLab