Animation 使用tweenjs在THREE.JS中移动直线曲线中的对象
我有一个物体是线。我想用一个物体制作一个动画,它可以移动所有的顶点,它可以是一个球体。为此,我将使用tween.js。我的问题是,我无法实现其所有顶点的动画。如何使动画从起点一直显示到终点?。 我有以下代码:Animation 使用tweenjs在THREE.JS中移动直线曲线中的对象,animation,three.js,tween.js,Animation,Three.js,Tween.js,我有一个物体是线。我想用一个物体制作一个动画,它可以移动所有的顶点,它可以是一个球体。为此,我将使用tween.js。我的问题是,我无法实现其所有顶点的动画。如何使动画从起点一直显示到终点?。 我有以下代码: //myline.geometry.vertices -> array with vertices of the line (1000 vertices) new TWEEN.Tween( mysphere.position ).to( { x: myline.geometry.v
//myline.geometry.vertices -> array with vertices of the line (1000 vertices)
new TWEEN.Tween( mysphere.position ).to( { x: myline.geometry.vertices[0].x, y: myline.geometry.vertices[0].y, z: myline.geometry.vertices[0].z }, 9000 ).to( { x: myline.geometry.vertices[1].x, y: myline.geometry.vertices[1].y, z: myline.geometry.vertices[1].z }, 9000 ).delay(2000).start();
我使用“.to”方法,如果我将要移动的顶点放在其中,效果很好。方法,但如果我有1000个顶点,我必须将它们全部放置。我能做什么?。
我把几个球体放在一条直线上,以相同的距离移动。我怎么做?。
我需要沿着前面创建的网格线移动球体。我需要沿直线移动n个球体,制作动画。使用tween.js应该更容易。虽然您还没有指定如何确定这些顶点将移动到哪里,但我强烈建议您查看
THREE.MorphAnimMesh
和THREE.Morphanidmesh
类型。通过在几何体的定义中指定目标位置,可以获得平滑的动画,而无需使用tween.js进行复杂的设置——只需调用混合量,而不是逐顶点循环。THREE.js将为您完成所有工作。您也可以使用基本的THREE.Mesh
类型,如本例所示:
如果确实需要更改几何图形
.vertces
数组,请记住设置geometry.verticesNeedUpdate=true代码>更改值后,THREE可以确保更新其模型的内部WebGL表示。这个答案对我没有帮助,我需要沿一条线移动一个球体,该线是一个网格,并已在前面创建。我需要沿直线移动n个球体,制作动画。使用tween.js应该更容易。然后创建一个包含所需顶点副本的数组。使用此数组创建曲线,例如c=THREE.SplineCurve3(顶点)
现在,对于要设置动画的帧数,通过newPoints=c.getSpacedPoints(nFrames)获取新的位置数组
然后为每个帧简单地设置该点的位置。或者,如果不需要固定的时间步长,可以通过c.getPoint(t)参数化地查询它代码>其中t从0到1变化。谢谢,我没有非常清楚的“帧”,也不理解“c.getPoint(t),其中t从0到1变化”。我不认为有了这个我就需要实现动画。正如标题所说,我需要tween.js的动画,比如var t=0;var c=三个样条曲线3(顶点);函数mvSphere(event){sphere.position.copy().c.getPoint(t);}new TWEEN.TWEEN(t,{onChange:mvSphere).to(1.09000);
应该可以做到这一点。TWEEN只理解属性之间的线性转换,所以需要使用onChange
来执行更复杂的三种转换。