3

protovis ストリームグラフをアニメーション化する方法がわかりません。i, j最善の方法は、単にインデックスの配列を渡し.layers()て、関数.x().y()関数に実際の更新値を検索させることだと思います。もっと簡単な方法はありますか?

4

1 に答える 1

2

すべてのレンダリングの前にデータを更新するだけではいけませんか?データが変更されたと仮定すると、vis全体を再レンダリングする必要があると思うので、そうでない場合にそれを行うことの利点がわかるかどうかはわかりません。

function getData(offset) {
   // get/create your data here, maybe seeded with an offset
}

var offset = 0;

// ... define scales and stuff

var vis = new pv.Panel()
    .width(w)
    .height(h);

vis.add(pv.Layout.Stack)
     // wrap in a function to re-evaluate on render
    .layers(function() getData(offset))
    .offset("wiggle")
    .x(x.by(pv.index))
    .y(y)
.layer.add(pv.Area);

// use setInterval to animate
setInterval(function() { 
    offset++; // still working on the offset idea
    vis.render(); 
}, 20);

これはうまくいくようですが、実際には作成しようとしているアニメーションの種類によって異なります。アニメーションの種類によっては、より効率的なアプローチがある場合があります。

于 2011-01-31T22:11:23.190 に答える