Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 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 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | 64x 64x 64x 64x 64x 86x 86x 86x 86x 86x 127x 127x 127x 127x 127x 11x 11x 5x 2x 64x 64x 64x 64x 64x 74x 22x 22x 22x | export function addVector(u, v) {
const result = {}
result.x = u.x + v.x
result.y = u.y + v.y
result.z = u.z + v.z
return result
}
export function substractVector(u, v) {
const result = {}
result.x = u.x - v.x
result.y = u.y - v.y
result.z = u.z - v.z
return result
}
export function multiplyVector(lambda, u) {
const result = {}
result.x = u.x * lambda
result.y = u.y * lambda
result.z = u.z * lambda
return result
}
export function dotProduct(u, v) {
const result = u.x * v.x + u.y * v.y + u.z * v.z
return result
}
export function areCollinear(u, v) {
return vectorLength(crossProduct(u, v)) == 0
}
export function areAlmostCollinear(u, v, tolerance) {
return vectorLength(crossProduct(u, v)) < tolerance
}
export function crossProduct(u, v) {
const result = {}
result.x = u.y * v.z - u.z * v.y
result.y = u.z * v.x - u.x * v.z
result.z = u.x * v.y - u.y * v.x
return result
}
export function meanVector(listVector) {
let meanPoint = {}
let sumPoint = { x: 0, y: 0, z: 0 }
listVector.forEach((p) => {
sumPoint = addVector(sumPoint, p)
})
meanPoint = multiplyVector(1 / listVector.length, sumPoint)
return meanPoint
}
export function vectorLength(v) {
return Math.sqrt(v.x * v.x + v.y * v.y + v.z * v.z)
}
export function vectorLength2D(v) {
return Math.sqrt(v.x * v.x + v.y * v.y)
}
export function normalizeVector(v) {
let length = vectorLength(v)
Iif (length == 0) {
return v
}
return multiplyVector(1 / length, v)
}
export function normalize2DVector(v) {
let length = vectorLength2D(v)
if (length == 0) {
return v
}
return multiplyVector(1 / length, v)
}
|