2017-10-20 32 views
-1

过去两周,我一直在更新旧版THREE.js发行版中的threejs_mousepick.html示例至当前版本。哦,是的,我是编程的新手。无法将旧代码更新为Three.js 88

我已经创建了一个小提琴,跳过别人会花一些时间来帮助我。 CANNON.js是一个很棒的API,很遗憾,看到现在的THREE.js中的例子太旧/无法使用。我知道这是很多工作,我很愿意帮忙,但我需要一些帮助。所以,如果@schteppe你读了这个,请联系:我愿意花一些时间在这方面做一些工作。

+0

以下是链接:https://jsfiddle.net/f4j64L91/1/ – Student

+0

检查控制台中的日志,有几条有用的消息。并阅读['THREE.Raycaster()'](https://threejs.org/docs/index.html#api/core/Raycaster)。 – prisoner849

+0

我做到了。我知道如何使用Three.js raycaster,我尝试将函数替换成一些东西,但没有成功......但是。这段代码很复杂,嵌套。我会继续试验。 – Student

回答

0

答案与问题一样广泛。

使用THREE.Raycaster()THREE.Plane()简化了很多事情。它允许删除诸如projectOntoPlane,findNearestIntersectingObject,getRayCasterFromScreenCoord等功能,并且将setScreenPerpCenter函数(其名称很荒谬,但我将它保留原样)缩短为一行。

jsfiddle例如R87

enter image description here

gplaneTHREE.Plane()

var gplane = new THREE.Plane(), gplaneNormal = new THREE.Vector3(); 

因为它写在descripting评论,我们创建了一个虚拟平面,我们将我们的关节点上。

function setScreenPerpCenter(point) { 
    gplane.setFromNormalAndCoplanarPoint(gplaneNormal.subVectors(camera.position, point).normalize(), point); 
} 

在这里,我们设置了飞机从正常和共面点,其中标准是相机的位置和点击的立方体点之间相减的归一化向量,问题是,点击本身。阅读关于该方法的信息here

+0

男人,谢谢。我总是对这些功能感到困惑,无法确定如何使用它们。今晚我会花时间从你的代码中学习。再次感谢你。 – Student

+0

不客气。将答案标记为已接受,如果它解决了您的问题) – prisoner849

+0

确实,现在完成了。 – Student

相关问题