javascript - 更改鼠标悬停时的顶点位置

标签 javascript three.js

我有一个 PlaneGeometry,我想修改悬停顶点的 z 位置,但我不知道如何检索它。

//THREE.WebGLRenderer 69

// Generating plane
var geometryPlane = new THREE.PlaneGeometry( 100, 100, 20, 10 );

for (var vertIndex = 0; vertIndex < geometryPlane.vertices.length; vertIndex++) {
    geometryPlane.vertices[vertIndex].z += Math.random();
}
geometryPlane.dynamic = true;
geometryPlane.computeFaceNormals();
geometryPlane.normalsNeedUpdate = true;
var materialPlane = new THREE.MeshLambertMaterial( {
    color: 0xffff00,
    side: THREE.DoubleSide,
    shading: THREE.FlatShading,
    overdraw: 0.5,
    vertexColors: THREE.FaceColors
} );
plane = new THREE.Mesh( geometryPlane, materialPlane );
plane.geometry.colorsNeedUpdate = true;

// Mouse event
container[0].addEventListener( 'mousemove', onMouseMove, false );
function onMouseMove( event ) {
    var mouseX = ( event.clientX / window.innerWidth ) * 2 - 1;
    var mouseY = -( event.clientY / window.innerHeight ) * 2 + 1;

    var vector = new THREE.Vector3( mouseX, mouseY, camera.near );
    vector.unproject( camera );

    raycaster = new THREE.Raycaster( camera.position, vector.sub( camera.position ).normalize() );

    if ( intersects.length > 0 ) {
        // Change the z position of the selected vertice
        var selectedVertice = ???
        selectedVertice.position.z +=5;
    }
} 

最佳答案

如果问题涉及一个顶点而不是整个对象,也许您可​​以:
1-在intersects[0].face
中检索相交面 2- 该面可能包含 3 个顶点(可能是 THREE.Face3):找到与交点 intersects[0].point 最近的顶点 V。
3-改变V.z

我不知道它是否有效:这是一个想法......;)

关于javascript - 更改鼠标悬停时的顶点位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27255027/

相关文章:

javascript - THREE.js - 对象选取不会报告使用 OBJ MTL Loader 加载的对象的父对象名称

javascript - 每个元素上的同位素过滤器链接

javascript - 分别找到每一次出现的字符代码 255,251,178。在字符串或数组中

c# - ExecuteScript(setInterval) 完成后继续 `while` 循环

javascript - THREE.js 不使用 .mtl 渲染 .obj - 为 THREE.js 导出文件

javascript - 当旋转超过 90° 时, Three.js 中的四元数旋转会变得困惑

javascript - 如何使用 jQuery 在 div 状态内切换复选框?

javascript - Bluebird , promise ,然后()

javascript - 如何在三个js中制作3d文字

javascript - 三、ExplodeModifier 黑客攻击