bee*_*eek 2 javascript three.js
我正在尝试通过鼠标单击生成的一堆点在“三”中创建可点击的形状。
这段代码可以正常工作:
mouse.x = ( ( event.clientX - renderer.domElement.offsetLeft ) / player.width ) * 2 - 1;
mouse.y = - ( ( event.clientY - renderer.domElement.offsetTop ) / player.height ) * 2 + 1
raycaster.setFromCamera( mouse, camera );
var objects = [];
objects.push(selectedHotspot);
var intersects = raycaster.intersectObjects( objects, true );
if ( intersects.length > 0 ) {
var point = new THREE.Mesh( new THREE.SphereGeometry(1, 1, 1), new THREE.MeshBasicMaterial( { color: 0x00ffff } ) );
point.position.copy(intersects[0].point);
scene.add(point);
points.push(intersects[0].point);
}
var geometry = new THREE.Geometry();
points.forEach( function( point ){
geometry.vertices.push( point );
});
geometry.vertices.push( points[0] );
geometry.faces.push( new THREE.Face3(0, 1, 2));
// material
var material = new THREE.MeshBasicMaterial( { color: 0xffffff } );
// line
var line = new THREE.Mesh( geometry, material );
scene.add( line );
hotspots.push( line );
Run Code Online (Sandbox Code Playgroud)
点被添加了,我可以在它们之间画线,但我不能填充中心,以便鼠标可以检测到它!
您可以使用来从点创建网格THREE.ConvexGeometry。
var mesh = new THREE.ConvexGeometry( vertices_array );
Run Code Online (Sandbox Code Playgroud)
参见例如http://threejs.org/examples/webgl_geometry_convex.html
这只是您要点的凸包,但是对于您的用例来说应该足够了。
您必须examples/js/geometries/ConvexGeometry.js在源代码中明确包含Three.js文件。
three.js r.84
| 归档时间: |
|
| 查看次数: |
4219 次 |
| 最近记录: |