我试图通过增加半径来设置球体的动画效果。这是我的代码的相关片段..
function create_sphere(){
var sphereMaterial = new THREE.MeshLambertMaterial(
{
color: 0xCC0000
});
var radius=2,segments=50,rings=50;
sphere_geometry = new THREE.SphereGeometry(radius, segments, rings)
sphere = new THREE.Mesh(sphere_geometry,sphereMaterial);
sphere.position.y = -10;
sphere.position.needsUpdate = true;
sphere.geometry.dynamic = true;
}
这里是动画函数,我正在调用..
function animate(){
sphere.position.y+=0.1;
sphere.geometry.radius +=0.1;
scene.add(sphere);
renderer.render(scene, camera);
requestAnimationFrame(animate);
}
但我无法增加球体的半径,尽管它在y方向上完美移动,(暗示代码正在工作,并且没有错误)。 任何建议我可能错在..
答案 0 :(得分:3)
沿三个轴均匀缩放物体:
var sphereScale = 1.0;
...
sphereScale += 0.1;
sphere.scale.set(sphereScale,sphereScale,sphereScale); // x,y,z
答案 1 :(得分:2)
radius参数用于在创建几何体时计算顶点的位置,之后更改其值将不起作用。要更改大小,可以使用缩放参数。如果要更改所有三个维度(x,y和z)的大小,请在动画函数中替换
sphere.geometry.radius +=0.1;
与
sphere.scale.x += 0.1;
sphere.scale.y += 0.1;
sphere.scale.z += 0.1;
每次调用animate函数时,会使球体的大小增加原始大小的10%。
希望这有帮助!