如何检查2D绘图中2个点是否相交?

我有一个2D绘图,并且如果所有dbId与当前dbId相交,则需要从中提取属性。

那样的话就足够了:

function checkintersect(dbId1,dbId2){
  return intersect ? true : false
}

我该怎么做?

hufu1971 回答:如何检查2D绘图中2个点是否相交?

尝试使用以下方法找到两个节点的2d边界(边界框):

function get2DBoundsSample( dbId,model,useInstancing ) {

    //const it = model.getData().instanceTree;

    const fragList = model.getFragmentList();



    let bounds = new THREE.Box3();

    let bc = new Autodesk.Viewing.Private.BoundsCallback( bounds );

    const dbId2fragId = model.getData().fragments.dbId2fragId;

    const fragIds = dbId2fragId[dbId];



    if( Array.isArray( fragIds ) ) {

        for( let i = 0; i < fragIds.length; i++ ) {

            find2DBoundsSample( fragList,fragIds[i],dbId,useInstancing,bc );

        }

    } else if( typeof fragIds === 'number' ) {

        find2DBoundsSample( fragList,fragIds,bc );

    }

    function find2DBoundsSample( fragList,fragId,bc ) {

    const mesh = fragList.getVizmesh( fragId );

    if(mesh.geometry){

        const vbr = new Autodesk.Viewing.Private.VertexBufferReader( mesh.geometry,useInstancing );

        vbr.enumGeomsForObject( dbId,bc );

    }

    else{

        console.log('Mesh Geometry undefined. DBID: ',useInstancing);

      }

    }

    return bc.bounds;

}

然后测试两个框是否与Box3.isIntersectionBox()相交

本文链接:https://www.f2er.com/3080320.html

大家都在问