zoukankan      html  css  js  c++  java
  • javascript earcut

    THREE.Earcut = {
    
        triangulate: function ( data, holeIndices, dim ) {
    
            dim = dim || 2;
    
            const hasHoles = holeIndices && holeIndices.length;
            const outerLen = hasHoles ? holeIndices[ 0 ] * dim : data.length;
            let outerNode = linkedList( data, 0, outerLen, dim, true );
            const triangles = [];
    
            if ( ! outerNode || outerNode.next === outerNode.prev ) return triangles;
    
            let minX, minY, maxX, maxY, x, y, invSize;
    
            if ( hasHoles ) outerNode = eliminateHoles( data, holeIndices, outerNode, dim );
    
            // if the shape is not too simple, we'll use z-order curve hash later; calculate polygon bbox
            if ( data.length > 80 * dim ) {
    
                minX = maxX = data[ 0 ];
                minY = maxY = data[ 1 ];
    
                for ( let i = dim; i < outerLen; i += dim ) {
    
                    x = data[ i ];
                    y = data[ i + 1 ];
                    if ( x < minX ) minX = x;
                    if ( y < minY ) minY = y;
                    if ( x > maxX ) maxX = x;
                    if ( y > maxY ) maxY = y;
    
                }
    
                // minX, minY and invSize are later used to transform coords into integers for z-order calculation
                invSize = Math.max( maxX - minX, maxY - minY );
                invSize = invSize !== 0 ? 1 / invSize : 0;
    
            }
    
            earcutLinked( outerNode, triangles, dim, minX, minY, invSize );
    
            return triangles;
    
        }
    
    };
    var triangles = THREE.Earcut.triangulate([10,0, 0,50, 60,60, 70,10]);

    参考:https://github.com/mapbox/earcut

    #######################################

    QQ 3087438119
  • 相关阅读:
    IPC机制key值的各位组成
    ctrl+c,ctrl+d,ctrl+z在linux中意义
    Linux x86_64与i386区别之 —— 内存寻址
    readdir_r()读取目录内容
    memmove和memcpy
    sscanf的应用
    获取CPU频率
    盘点十个超级实用的 JS 特性
    Java 类在 Tomcat 中是如何加载的?
    Java 类在 Tomcat 中是如何加载的?
  • 原文地址:https://www.cnblogs.com/herd/p/15769559.html
Copyright © 2011-2022 走看看