首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Three.js射线衍射仪只相交指定的形状部分

Three.js射线衍射仪只相交指定的形状部分
EN

Stack Overflow用户
提问于 2014-10-11 13:26:17
回答 1查看 994关注 0票数 0

我需要得到一个交叉口,使用雷射,只有一个几何顶点,而不是所有的几何形状。我编写了这段代码,但是如果我单击设置的vertice,什么都不会发生。

代码语言:javascript
运行
复制
         function onDocumentMouseClick(event) {

            event.preventDefault();

            mouse2D.x = (event.clientX / window.innerWidth) * 2 - 1;
            mouse2D.y = -(event.clientY / window.innerHeight) * 2 + 1;

            raycaster = projector.pickingRay(mouse2D.clone(), camera);

            var intersects = raycaster.intersectObjects(objects[0].geometry.vertices[0]);// I want intersection only with vertices

            if (intersects.length > 0) {

                console.log("ok");}       
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-20 00:31:37

首先,您需要将一个对象数组传递给raycaster.intersectObjects,正如pixelmike所建议的那样

代码语言:javascript
运行
复制
var intersects = raycaster.intersectObjects([objects[0]])

不能获得交集本身的顶点,但可以获得每个交点的face

代码语言:javascript
运行
复制
for ( var i = 0; i < intersects.length; i++ ) {
    if ( intersect.face == myTargetFace ) {
        console.log( "ok" );
    }
}

如果确实希望特定对象只检查与特定人脸子集的交叉点,则可以重写该对象的raycast方法( la https://github.com/mrdoob/three.js/blob/master/src/objects/Mesh.js#L56-L340 ),以仅搜索这些面。

three.js r68

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26315184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档