jsketcher/modules/geom/curves/frenetFrame.js
Val Erastov (xibyte) e11c1f7f4a geom module
2020-07-19 22:37:24 -07:00

22 lines
No EOL
548 B
JavaScript

import * as vec from 'math/vec';
import {perpendicularVector} from "../../math/euclidean";
export function frenetFrame(D1, D2) {
let T = vec.normalize(D1);
let N = vec.normalize(D2);
let B = vec.cross(T, N);
return [T, N, B];
}
export function pseudoFrenetFrame(D1) {
let T = vec.normalize(D1);
let N = perpendicularVector(T);
let B = vec.cross(T, N);
return [T, N, B];
}
export function advancePseudoFrenetFrame(refFrame, T) {
let B = vec._normalize(vec.cross(T, refFrame[1]));
let N = vec.cross(B, T);
return [T, N, B];
}