加载 Obj 文件和测量工具



我成功加载了一个 obj 文件,但我正在尝试通过用两个点标记 3d 模型并在它们之间画一条直线来添加测量工具。 类似于Potree的东西(不幸的是,它不支持.obj文件)。当我使用三个.js时,怎么能做到这一点。

  1. 添加mousedown侦听器
  2. camera到鼠标位置的光线投射
  3. 将交点 A、B 另存为Vector3
  4. 计算 A、B 之间的距离

缩短代码:

function onDocumentMouseDown( event ) {
    var vector = new THREE.Vector2();
    vector.set(
        ( event.clientX / window.innerWidth ) * 2 - 1,
        - ( event.clientY / window.innerHeight ) * 2 + 1 );
    var raycaster = new THREE.Raycaster();
    raycaster.setFromCamera( vector, camera );  
    var intersects = raycaster.intersectObjects( model.children );
    if ( intersects.length > 0 ) {
        pointA = intersects[ 0 ].point;
        // some logic to save pointB
        // on the second click...
        //pointB = intersects[ 0 ].point;
        var distance = pointA.distanceTo( pointB );
        // draw Line
        var geometry = new THREE.Geometry();
        geometry.vertices.push( pointA );
        geometry.vertices.push( pointB );
        var material = new THREE.LineBasicMaterial();
        line = new THREE.Line( geometry, material );
        scene.add(line);
    }
}

工作示例,距离输出在控制台中:http://jsfiddle.net/kgxs7afv/1/

三.js r107

最新更新