1
0
mirror of https://github.com/JustinSDK/dotSCAD.git synced 2025-08-21 14:04:53 +02:00

consider two or three pts

This commit is contained in:
Justin Lin
2019-05-13 09:44:31 +08:00
parent ff8d36336e
commit 7b1a683c74

View File

@@ -65,17 +65,30 @@ module path_extrude(shape_pts, path_pts, triangles = "SOLID", twist = 0, scale =
m_rotation(ang_vect[0], ang_vect[1]) m_rotation(ang_vect[0], ang_vect[1])
]; ];
echo(rot_matrice);
leng_rot_matrice = len(rot_matrice); leng_rot_matrice = len(rot_matrice);
leng_rot_matrice_minus_one = leng_rot_matrice - 1; leng_rot_matrice_minus_one = leng_rot_matrice - 1;
leng_rot_matrice_minus_two= leng_rot_matrice - 2; leng_rot_matrice_minus_two= leng_rot_matrice - 2;
identity_matrix = [
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[0, 0, 0, 1]
];
function cumulated_rot_matrice(i) = function cumulated_rot_matrice(i) =
i == leng_rot_matrice - 2 ? leng_rot_matrice == 0 ? [identity_matrix] : (
[ leng_rot_matrice == 1 ? [rot_matrice[0], identity_matrix] :
rot_matrice[leng_rot_matrice_minus_one], (
rot_matrice[leng_rot_matrice_minus_two] * rot_matrice[leng_rot_matrice_minus_one] i == leng_rot_matrice_minus_two ?
] [
: cumulated_rot_matrice_sub(i); rot_matrice[leng_rot_matrice_minus_one],
rot_matrice[leng_rot_matrice_minus_two] * rot_matrice[leng_rot_matrice_minus_one]
]
: cumulated_rot_matrice_sub(i))
);
function cumulated_rot_matrice_sub(i) = function cumulated_rot_matrice_sub(i) =
let( let(