2012年7月26日 星期四

JForthBlocks--ProcessingJS Distance2D範例試作

這是參考ProcessingJS.org Demo--Drawing lots of simultaneous circles to create an impressive effect.,Jimmy's papa重新以JForthBlocks改寫一次

從以下的積木工作區截圖可以發現,九成可以與ProcessingJS程式碼對應到,其中的float size區域變數宣告,是為了暫存dist(mouseX, mouseY, i, j)的運算結果,這在Forth語言根本可免,只要直接將運算結果暫時堆到返回堆疊(Return Stack)即可,要用時再堆回資料堆疊(Data Stack)

float max_distance;



void setup() {

  smooth();

  noStroke();

  max_distance = dist(0, 0, width, height);

  loop();

}



void draw() 

{

  for(int i = 0; i <= width; i += 20) {

    for(int j = 0; j <= width; j += 20) {

      float size = dist(mouseX, mouseY, i, j);

      size = size/max_distance * 66;

      ellipse(i, j, size, size);


    }

  }

}
寄件者 scratchlab02

沒有留言:

張貼留言