forked from swapnilsparsh/30DaysOfJavaScript
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
54 lines (47 loc) · 1.97 KB
/
Copy pathscript.js
File metadata and controls
54 lines (47 loc) · 1.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
function getVectors() {
const ax = parseFloat(document.getElementById('ax').value) || 0;
const ay = parseFloat(document.getElementById('ay').value) || 0;
const az = parseFloat(document.getElementById('az').value) || 0;
const bx = parseFloat(document.getElementById('bx').value) || 0;
const by = parseFloat(document.getElementById('by').value) || 0;
const bz = parseFloat(document.getElementById('bz').value) || 0;
return { A: [ax, ay, az], B: [bx, by, bz] };
}
function calculateMagnitude() {
const { A, B } = getVectors();
const magA = Math.sqrt(A[0]**2 + A[1]**2 + A[2]**2).toFixed(3);
const magB = Math.sqrt(B[0]**2 + B[1]**2 + B[2]**2).toFixed(3);
document.getElementById('results').innerHTML = `|A| = ${magA}, |B| = ${magB}`;
}
function addVectors() {
const { A, B } = getVectors();
const res = [A[0]+B[0], A[1]+B[1], A[2]+B[2]];
document.getElementById('results').innerHTML = `A + B = (${res.join(', ')})`;
}
function subtractVectors() {
const { A, B } = getVectors();
const res = [A[0]-B[0], A[1]-B[1], A[2]-B[2]];
document.getElementById('results').innerHTML = `A - B = (${res.join(', ')})`;
}
function dotProduct() {
const { A, B } = getVectors();
const res = (A[0]*B[0] + A[1]*B[1] + A[2]*B[2]).toFixed(3);
document.getElementById('results').innerHTML = `A · B = ${res}`;
}
function crossProduct() {
const { A, B } = getVectors();
const res = [
A[1]*B[2] - A[2]*B[1],
A[2]*B[0] - A[0]*B[2],
A[0]*B[1] - A[1]*B[0]
];
document.getElementById('results').innerHTML = `A × B = (${res.join(', ')})`;
}
function angleBetween() {
const { A, B } = getVectors();
const dot = A[0]*B[0] + A[1]*B[1] + A[2]*B[2];
const magA = Math.sqrt(A[0]**2 + A[1]**2 + A[2]**2);
const magB = Math.sqrt(B[0]**2 + B[1]**2 + B[2]**2);
const angle = Math.acos(dot / (magA * magB)) * (180/Math.PI);
document.getElementById('results').innerHTML = `Angle = ${angle.toFixed(2)}°`;
}