草庐IT

Intersects

全部标签

javascript - Three.JS Orbit Controls - 启用和禁用不跳位

我正在使用Three.JS创建一个几何操作原型(prototype)。我正在使用OrbitControls.JS来操纵相机,但在启用和禁用控件时遇到了问题。这是我的演示:http://moczys.com/webGL/Prototype_V02-05.html想法是,当您将鼠标悬停在四面体的顶点上时,会出现一个灰色球体。通过单击球体,可以调出一个顶点操作handle。然后通过单击箭头上的拖动,您可以沿该方向移动顶点。然后,您应该能够在远离几何图形的地方单击以退出此模式。单击离开时会出现问题。如果在移动顶点后单击并拖动,相机会变得有点疯狂。根据您与原点的距离,OrbitControls会

javascript - 高效地捕捉到threejs中的顶点

我想制作一个捕捉功能来捕捉到我的网格顶点。我尝试了几种解决方案。一种解决方案是为场景中的所有顶点添加THREE.Sprite实例,然后使用rayCaster来决定是否有snap指向intersects数组。它工作得很好;这里isafiddlewithademo.我的想法是在最终解决方案中隐藏Sprite,这样它们就不会被渲染,但我的场景非常大,所以它仍然意味着要在我的场景中添加很多Sprite(对于每个顶点一个,所以可能有数千个Sprite)来检测使用我的rayCaster捕捉点。varintersects=rayCaster.intersectObject(scene,true);v

javascript - Three.js raycaster 可以与一个组相交吗?

我想知道我的raycaster是否正在查看我加载的OBJ。由于从Cinema4D导出的方式,我相信OBJ是一个有3个child的THREE.Group,而不是THREE.Object。我可以只更改我的raycaster代码行来查找这个组而不是对象吗?raycaster.set(controls.getObject().position,controls.getDirection(),0,40)varintersects=raycaster.intersectObjects(scene.children,true);if(intersects.length>0){//CURRENTLYI

javascript - 在三个 js 中使用鼠标悬停更改网格的颜色

我已经使用jsonloader和three.js编写了一个显示多个网格的WebGL脚本,现在我想添加MouseOver和onClick事件。第一个是在鼠标悬停在网格上时简单地更改网格的颜色:functionrender(){requestAnimationFrame(render);mesh.rotation.z+=0.090;raycaster.setFromCamera(mouse,camera);varintersects=raycaster.intersectObjects(scene.children);for(vari=0;i上面的渲染函数允许我通过将鼠标悬停在任何网格上来

javascript - 如何在 THREE.js 中获取被点击的元素

假设我在Canvas中有一些元素,它们可能会相互覆盖。单击一个点时,如何获取该元素?更新:这个演示有很大帮助:http://mrdoob.github.com/three.js/examples/canvas_interactive_cubes.html 最佳答案 使用以下代码。这将允许您添加点击事件并在发生时执行您需要的操作。您可以查看页面的源代码以了解他们在做什么,我是从哪里获得这段代码的。document.addEventListener('mousedown',onDocumentMouseDown,false);varpr

javascript - 如何在 THREE.js 中获取被点击的元素

假设我在Canvas中有一些元素,它们可能会相互覆盖。单击一个点时,如何获取该元素?更新:这个演示有很大帮助:http://mrdoob.github.com/three.js/examples/canvas_interactive_cubes.html 最佳答案 使用以下代码。这将允许您添加点击事件并在发生时执行您需要的操作。您可以查看页面的源代码以了解他们在做什么,我是从哪里获得这段代码的。document.addEventListener('mousedown',onDocumentMouseDown,false);varpr

ios - CGRect Intersects Rect 更好的选择

我想在两个UIImageView相交时编写一个方法。我知道该怎么做的唯一方法是CGRectIntersectsRect。但这只适用于矩形,但我的图像是圆形的。没有更好的选择吗?谢谢! 最佳答案 你可以这样做:CGPointa=imageViewA.center;CGPointb=imageViewB.center;CGFloatdistance=sqrt(pow((b.x-a.x),2)+pow((b.y-a.y),2));if(distance 关于ios-CGRectIntersec