所以我有一個XML文檔,我解析爲了在WebGL場景中執行操作。 所以我有可以或不可以動畫的節點。 然後我有一個CircularAnimation,它有一個Center(x,y,z),Node應該以距離該中心的Radius距離旋轉。動畫的一段時間,一個可調角度和一個旋轉角度。WebGL在給定的中心上旋轉
<ANIMATION id="cir1" span="5" type="circular" center="0 0 0" radius="3" startang="0" rotang="360"/>
在我的CircularAnimation類中,我有一個函數使對象移動並更新它的水平方向。類似於地球在太陽上旋轉的方式。
我使用Animation類中定義的currTime來計算跨度是否已結束。
if(this.beg_time == null) this.beg_time = currTime;
else
{
if((currTime-this.beg_time) >= this.span) return;
else
{
// Calculates angles to rotate
var ang_inc = (this.angle_rot*(currTime-this.beg_time))/this.span;
var total_rot = ang_inc+this.angle_beg;
// Rotates node Matrix from the Matrix_Beg
mat4.rotateY(this.node.matrix, this.node.beg_matrix, total_rot);
// Moves the node to the desired center
mat4.translate(this.node.matrix, this.node.matrix, [this.x, this.y, this.z]);
// Moves the node according to the given radius
mat4.translate(this.node.matrix, this.node.matrix, [this.radius*Math.cos(ang_inc), 0, this.radius*Math.sin(ang_inc)]);
}
}
但是,這似乎沒有正常工作,任何想法爲什麼?