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.


  • administrators

    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.