如何在运行时基于TubeGeometry动态更改网格的半径。
以下是我创建网格的方法:
var points = new THREE.SplineCurve3([
new THREE.Vector3(source.x, source.y, source.z),
new THREE.Vector3(target.x, target.y, target.z)
]);
var geometry = new THREE.TubeGeometry(points, 10, 1, 10, false, false);
geometry.dynamic = true;
var material = new THREE.MeshLambertMaterial({color:0x0000cc});
var mesh = new THREE.Mesh(geometry, material);
在这里我如何尝试更新管的半径:
var geometry = mesh.geometry;
geometry.radius = 200;
geometry.verticesNeedUpdate = true;
mesh.updateMatrix();
不幸的是它没有更新管半径。它是如何正确完成的?它有可能吗?
答案 0 :(得分:3)
radius
参数仅在构造几何体时使用。改变它将没有任何效果。
您可以更改mesh.scale
,但由于样条曲线,这可能无法在您的情况下使用。 (它适用于CyllinderGeometry
。)
three.js r.58