在运行时更新TubeGeometry的半径

时间:2013-05-02 10:13:58

标签: three.js

如何在运行时基于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();

不幸的是它没有更新管半径。它是如何正确完成的?它有可能吗?

1 个答案:

答案 0 :(得分:3)

radius参数仅在构造几何体时使用。改变它将没有任何效果。

您可以更改mesh.scale,但由于样条曲线,这可能无法在您的情况下使用。 (它适用于CyllinderGeometry。)

three.js r.58