0

我想写一个 3d 版本的 fft。(像这样:https://wiki.mozilla.org/File:Fft.png)所以我创建了几个条形图,在一个外部函数中,我的第一个方法是将 lengthY 设置为一个值。然后我调用 bar.modified() 来强制它重新绘制。

如果我现在使用超过 50 条,它会非常慢(在我的 4 核 CPU 上)。我想有更好的方法来做到这一点,对吧?

来源:

var elements = new Array();

create3d = function(len) {
    var r = new X.renderer3D();

    r.init();

  if(a.length == 0){
     for ( var y = 0; y < len; y++) {
      var c = new X.cube();
      a.push(c);
     }
  }

     for ( var i = 0; i < len; i++) {
      a[i].center = [i*2 , 0, 0];
      a[i].lengthX = 1; 
      a[i].lengthY = 20;
      a[i].lengthZ = 1;

      a[i].color = [i%2,0,0];

      r.add(a[i]);
    }
  r.render();
};

function setVal(index,val){
    var element = a[index];
    element.lengthY = val;
    element.modified();
}
4

1 回答 1

0

我创建了一个关于如何做到这一点的 JSFiddle,它对于 1000 个立方体来说非常快

http://jsfiddle.net/haehn/6fVRC/

于 2012-08-19T19:15:52.643 回答