相关疑难解决方法(0)

使用Projection将World坐标转换为Three.js中的Screen坐标

有几个优秀的堆栈问题(1,2)关于three.js所unprojecting,那就是如何转换(X,Y)鼠标在浏览器中的(X,Y,Z)坐标three.js所帆布空间坐标.他们大多遵循这种模式:

    var elem = renderer.domElement, 
        boundingRect = elem.getBoundingClientRect(),
        x = (event.clientX - boundingRect.left) * (elem.width / boundingRect.width),
        y = (event.clientY - boundingRect.top) * (elem.height / boundingRect.height);

    var vector = new THREE.Vector3( 
        ( x / WIDTH ) * 2 - 1, 
        - ( y / HEIGHT ) * 2 + 1, 
        0.5 
    );

    projector.unprojectVector( vector, camera );
    var ray = new THREE.Ray( camera.position, vector.subSelf( camera.position ).normalize() );
    var intersects = ray.intersectObjects( scene.children );
Run Code Online (Sandbox Code Playgroud)

我一直试图反过来 - 而不是从"屏幕到世界"空间,从"世界到屏幕"空间.如果我知道Three.js中对象的位置,我该如何确定它在屏幕上的位置?

似乎没有任何已发布的解决方案来解决此问题. …

javascript 3d three.js

31
推荐指数
3
解决办法
3万
查看次数

将3D位置转换为2d屏幕位置[r69!]

我需要Three.js代码将3D对象坐标转换为'div'元素中的2d,以便我可以将文本标签放置在需要的位置(没有那些标签缩放/移动/旋转以及3D移动).不幸的是,到目前为止我见过和尝试过的所有示例似乎都在使用过时的函数/技术.就我而言,我相信我使用的是R69 of Three.js.

这是一个"老"技术的例子,它只会给我带来错误:

Three.js:将3d位置转换为2d屏幕位置

下面是一些新代码(?)的片段,它没有为我提供足够的上下文工作,但看起来更清晰:

https://github.com/mrdoob/three.js/issues/5533

3d 2d coordinates three.js

26
推荐指数
3
解决办法
2万
查看次数

标签 统计

3d ×2

three.js ×2

2d ×1

coordinates ×1

javascript ×1