UNPKG

@thi.ng/geom-arc

Version:

2D circular / elliptic arc operations

12 lines (11 loc) 500 B
import { cossin } from "@thi.ng/math/angle"; import { fit01 } from "@thi.ng/math/fit"; import { add2 } from "@thi.ng/vectors/add"; import { mul2 } from "@thi.ng/vectors/mul"; import { rotateZ } from "@thi.ng/vectors/rotate"; const pointAt = (pos, r, axis, start, end, t, out = []) => pointAtTheta(pos, r, axis, fit01(t, start, end), out); const pointAtTheta = (pos, r, axis, theta, out = []) => add2(null, rotateZ(null, mul2(out, cossin(theta), r), axis), pos); export { pointAt, pointAtTheta };