Flattening 3d triangle
-
Hello, flattening 3d triangle is very useful for all kinds of projects, and it's not available at this moment on V2, so here's a little function that does it. It comes from this discussion : https://stackoverflow.com/a/8051489
function d2ize(p){ var x0 = p[0][0], y0 = p[0][1], z0 = p[0][2], x1 = p[1][0], y1 = p[1][1], z1 = p[1][2], x2 = p[2][0], y2 = p[2][1], z2 = p[2][2] var X0 = 0, Y0 = 0 var X1 = Math.sqrt((x1 - x0)*(x1 - x0) + (y1 - y0)*(y1 - y0) + (z1 - z0)*(z1 - z0)), Y1 = 0 var X2 = ((x1 - x0) * (x2 - x0) + (y1 - y0) * (y2 - y0) + (z1 - z0) * (z2 - z0)) / X1, Y2 = Math.sqrt((x2 - x0)*(x2 - x0) + (y2 - y0)*(y2 - y0) + (z2 - z0)*(z2 - z0) - X2*X2) return [[X0, Y0], [X1, Y1], [X2, Y2]] }
-
Thank you. I only work with triangulated models for coding simplicity, even if later (for designs clarity) I usually remove walls between co-planar neighbours. I will certainly soon start to make V2 versions of my code, was only missing this, but for the moment I'm making a vanilla JS pattern editor.
-
Cool. But be careful as the boolean operations can create polygons with more than three (3) vertices. Also, some of the primitives create polygons with four (4) vertices.