UNPKG

789 BPlain TextView Raw
1import { Transform, Transform3D, Vector } from '../type';
2
3// 对普通的变换函数进行扩展
4// 对于长度大于2的向量,两两为一个点的 x 和 y 坐标
5// 依次变换后合成新的向量返回
6export function extend(transform: Transform) {
7 return (vector: Vector) => {
8 const v = [];
9 for (let i = 0; i < vector.length - 1; i += 2) {
10 const from = [vector[i], vector[i + 1]];
11 const to = transform(from);
12 v.push(...to);
13 }
14 return v;
15 };
16}
17
18export function extend3D(transform: Transform3D) {
19 return (vector: Vector) => {
20 const v = [];
21 for (let i = 0; i < vector.length - 1; i += 3) {
22 const from = [vector[i], vector[i + 1], vector[i + 2]];
23 const to = transform(from);
24 v.push(...to);
25 }
26 return v;
27 };
28}