处理函数的高效javascript等价物

处理函数的高效javascript等价物,javascript,processing,Javascript,Processing,我调整了一个处理草图,以产生一个网络应用程序所需的电视静态效果的变体。现在我想把这个效果转换成JS/canvas。以下处理代码中给出的loadPixels()、copyArray()、updatedPixels()、和draw()的纯javascript/canvas等价物是什么,或者考虑到JS/canvas可能没有处理/Java那么高效,如何最好地进行转换 int[] ppx; Random generator = new Random(); void setup() { size(64

我调整了一个处理草图,以产生一个网络应用程序所需的电视静态效果的变体。现在我想把这个效果转换成JS/canvas。以下处理代码中给出的
loadPixels()
copyArray()
updatedPixels()
、和
draw()
的纯javascript/canvas等价物是什么,或者考虑到JS/canvas可能没有处理/Java那么高效,如何最好地进行转换

int[] ppx;
Random generator = new Random();

void setup() {
  size(640,480);
  loadPixels();  
  ppx = new int[pixels.length];
  for (int y = 0; y < ppx.length;y++) {
      int spread = generator.nextInt(5);
      switch(spread) {
        case(1):
            if(y-480 > 0) {
                ppx[y] = ppx[y-480];
            }
            break;
        case(2):
            if(y-1 > 0) {
                ppx[y] = ppx[y-1];
            }
            break;
        case(3):
            ppx[y] = color(0,generator.nextInt(2)*255,0);
            if(y+480 < ppx.length) {
                ppx[y+480] = ppx[y];
            }
            break;
        case(4):
            ppx[y] = color(0,generator.nextInt(2)*255,0);
            if(y+1 < ppx.length) {
                ppx[y+1] = ppx[y];
            }
            break;
        case(0):
            break;
      };
  }
  frameRate(100000000000L);

}
void draw() {
  for (int y = 0; y < height;)
     arrayCopy(ppx, generator.nextInt(height/2), pixels, y++*width,width);
  updatePixels();
}
int[]ppx;
随机生成器=新随机();
无效设置(){
规模(640480);
loadPixels();
ppx=新整数[像素.长度];
对于(int y=0;y0){
ppx[y]=ppx[y-480];
}
打破
案例(2):
如果(y-1>0){
ppx[y]=ppx[y-1];
}
打破
案例(3):
ppx[y]=颜色(0,生成器.nextInt(2)*255,0);
如果(y+480
您可以使用John Resig的Processing.js进行一次性转换:

Canvas和JS works的级别较低,可能从这里开始:

您可以使用John Resig的Processing.js进行一次性转换:

Canvas和JS works的级别较低,可能从这里开始:

到目前为止,我已经用指向HTMLCanvasElement的s实现了这些函数。对于是否没有:


我仍然不确定如何使JS等效于
draw()
函数。

到目前为止,我已经用指向HTMLCanvasElement的s实现了这些函数。对于是否没有:


我仍然不确定如何使JS等效于一个
draw()
函数。

试着浏览一下net.tutsplus文章,我在那里看到了至少两个你正在寻找的函数。也许它失败是因为随机性,这是纯java。Processingjs无法翻译纯java。试着使用内置函数random()试着翻阅net.tutsplus的那篇文章我看到了至少两个你正在寻找的函数。也许它失败是因为random,这是纯java。Processingjs无法翻译纯java。尝试使用内置函数random()draw()是一个循环,如while(true){do stuff}。它还试图保持帧速率稳定。您可以查看来源:@v.k.酷。谢谢你的链接!draw()是一个循环,类似于while(true){do stuff}。它还试图保持帧速率稳定。您可以查看来源:@v.k.酷。谢谢你的链接!
    var x = s.getContext('2d');
    var pixels;
    function arrayCopy(src,sstart,dst,dstart,length) {
            length += sstart;
            dstart += length;
            while(--length > sstart) {
                    dst[--dstart] = src[length];    
            }       
    }
    function loadPixels() {
            pixels = x.getImageData(0,0,s.width,s.height);
    }
    function updatePixels() {
            x.putImageData(0,0,pixels);
    }