From 8b4cad6d290f5bf6129828951af9aa68aacaf87f Mon Sep 17 00:00:00 2001 From: fdai7322 <christoph-anton.schwierz@informatik.hs-fulda.de> Date: Mon, 27 May 2024 18:53:52 +0200 Subject: [PATCH] basis --- index.html | 4 +++- src/cg/basis.ts | 31 +++++++++++++++++++++++++++++++ src/cg/walkToVec.ts | 15 +++++++++++++++ 3 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 src/cg/basis.ts create mode 100644 src/cg/walkToVec.ts diff --git a/index.html b/index.html index 71ec3b2..0b8fd46 100644 --- a/index.html +++ b/index.html @@ -11,7 +11,9 @@ <!--script type="module" src="/src/main.ts"></script> <script type="module" src="/src/cg/main.ts"></script> <script type="module" src="/src/cg/pgIntro.ts"></script> - <script type="module" src="/src/cg/vector.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> </body> </html> diff --git a/src/cg/basis.ts b/src/cg/basis.ts new file mode 100644 index 0000000..449d59c --- /dev/null +++ b/src/cg/basis.ts @@ -0,0 +1,31 @@ +import Playground from "./playground"; +import { vecAdd } from "./utils"; +import { vecMultiply } from "./utils"; + +const pg = new Playground(); +pg.gridXZ(); + +const initialVec = [1.5, 2, 0.3]; + +let basis = [1, 2, 1]; +basis = vecMultiply(basis, 0.5); +const iHat = [basis[0], 0, 0]; +const jHat = [0, basis[1], 0]; +const kHat = [0, 0, basis[2]]; + +const vecAlongIHat = [initialVec[0] * iHat[0], initialVec[0] * iHat[1], initialVec[0] * iHat[2]]; +const vecAlongJHat = [initialVec[1] * jHat[0], initialVec[1] * jHat[1], initialVec[1] * jHat[2]]; +const vecAlongKHat = [initialVec[2] * kHat[0], initialVec[2] * kHat[1], initialVec[2] * kHat[2]]; + +pg.visVector(initialVec, {color: 'purple', label: "initial vector"}); +pg.visVector(iHat, {color: 'red', label: "î"}); +pg.visVector(jHat, {color: 'green', label: "^j"}); +pg.visVector(kHat, {color: 'blue', label: "^k"}); +pg.visVector(vecAlongIHat, {color: 'pink', label: "along î"}); +pg.visVector(vecAlongJHat, {color: 'limegreen', label: "along ^j"}); +pg.visVector(vecAlongKHat, {color: 'lightblue', label: "along ^k"}); + +let resultVec = vecAdd(vecAlongIHat, vecAlongJHat); +resultVec = vecAdd(resultVec, vecAlongKHat); + +pg.visVector(resultVec, {color: 'yellow', label: "result"}); \ No newline at end of file diff --git a/src/cg/walkToVec.ts b/src/cg/walkToVec.ts new file mode 100644 index 0000000..2b00166 --- /dev/null +++ b/src/cg/walkToVec.ts @@ -0,0 +1,15 @@ +import Playground from "./playground"; + +const pg = new Playground(); +pg.gridXZ(); +const v = [1, 2, -2]; + +pg.visVector(v, { color: "dodgerblue", label: "V" }); + +const alongX = [v[0], 0, 0]; +const alongY = [0, v[1], 0]; +const alongZ = [0, 0, v[2]]; +pg.visVector(alongX, { color: 'red' }); +pg.visVector(alongY, { color: 'green', placeAt: alongX }); +pg.visVector(alongZ, { color: 'blue', placeAt: [alongX[0], alongY[1], 0] }); + -- GitLab