2

WebGL Globe ( http://globe.chromeexperiments.com/ ) で遊んでいますが、新しいデータで「更新」してから新しい状態にアニメーション化できるようにしたいと考えています。ライブラリで提供されている例は、ページの読み込み時にデータ シリーズを一度に読み込むため役に立ちませんが、新しいデータを動的に (たとえば、30 秒ごとに) 読み込みたいと考えています。

new only を使用して次のコマンドを繰り返し実行するとdata、地球のデータが加算的に更新されるため、新しいデータが入ってくると、棒が地球上で「積み重なって」いきます。

globe.addData(data, {format: 'magnitude'});
globe.createPoints();
globe.animate();

ビルトイン API を使用して地球儀のデータを減算 / クリア / リセットする (そしてデータの新しい状態にアニメーション化する) 明らかな方法はないようです。これは簡単に実行できますか?

4

2 に答える 2

6

私はそれを考え出した。globe.js次の行を追加します。

function createPoints() {
    ...
    this.points.name = "lines"; // Add this line
    scene.add(this.points);
    }
}

// Create this function
function removeAllPoints() {
    scene.remove(scene.getObjectByName("lines"));
}

// Near the bottom of the code
this.addData = addData;
this.removeAllPoints = removeAllPoints; // Add this line
this.createPoints = createPoints;
this.renderer = renderer;
this.scene = scene;

これで、次のようなことが簡単にできます。

TWEEN.start();
globe.removeAllPoints();
globe.addData(data, {format: 'magnitude', name: 'results', animated: false});
globe.createPoints();
于 2015-05-13T04:40:28.783 に答える
4

hobbes3 の回答は本当に役に立ちました。しかし、小さな変更が 1 つだけあります。

を呼び出す必要はありませんglobe.animate()

私は、5 秒ごとにデータを更新globe.animate()し、何度も何度も呼び出してレンダリングをクロールするプロジェクトで使用していました。それをコメントアウトすると、あなたは金です。

于 2015-12-05T08:22:27.217 に答える