首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >光线与模型相交

光线与模型相交
EN

Stack Overflow用户
提问于 2017-04-19 12:23:25
回答 2查看 433关注 0票数 0

是否有可能从相机中投射光线,并知道它是否与模型相交?

在同样的情况下,是否可以用这种方式计算到交叉点的距离?

我想要这样做,这样我就可以通过编程知道墙是否有一个窗口,或者它是平的,如果它有一个窗口,那么就会有一个跳跃的距离的交叉口。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-19 13:28:02

是否有可能从相机中投射光线,并知道它是否与模型相交?您可以使用以下几个选项:

如果要交叉任何内容,可以使用内置的api let posClientCoords = new THREE.Vector3(x, y, 1.0) let result =this.viewer.utilities.viewerImpl.hitTestViewport(posClientCoords , false); if ( result !== null && result.fragId >= 0 ) { // here you go }查看器。

如果您喜欢射线投射所选的对象,则可以使用Three.js raycaster let vray =new THREE.Vector3( ptarget.x - psource.x, ptarget.y - psource.y, ptarget.z - psource.z ) vray.normalize () let ray =new THREE.Raycaster( psource, vray, 0, max_dist ) let intersectResults = ray.intersectObjects ( wallMeshes, true )

wallMeshes是从查看器viewer.impl.getRenderProxy(viewer.model, fragId), null, null, null )获得的代理图形数组。

在同样的情况下,是否可以用这种方式计算到交叉点的距离?每个API都将返回命中点(射线和对象之间的交点)。

一个例子是发布的这里

票数 2
EN

Stack Overflow用户

发布于 2017-04-19 13:16:41

绝对是。下面是一个例子,ForgeFader,演示了您所要求的内容:

http://thebuildingcoder.typepad.com/blog/2017/04/work-half-aks-opener-rvtfader-and-forgefader.html#9

GitHub上的消息来源:

https://github.com/jeremytammik/forgefader

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

https://stackoverflow.com/questions/43495669

复制
相关文章

相似问题

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