ここからいちばん近い来来亭はどこだと琵琶湖湖畔で佇むおれ*1


import processing.core.*
import javax.swing.JFrame

class App extends PApplet{
  PImage img
  Integer px
  Integer py

  void setup(){
    size(342,367)
    img = loadImage("ore.jpg")
    offset = 0
    px = 4
    py = px*2
  }

  void draw(){
    disp()
  }

  def disp = {
    def mp = this.&triangle
    (0..width).step(px){w->
      (0..height).step(py){h->
        def pos = w+h*img.width
        noStroke()
        fill(img.pixels[pos])
        if(w%py==0){
          //triangle(w-px as Float, h as Float, w as Float, h+py as Float, w+px as Float, h as Float)
	  mp.call([w-px, h, w, h+py, w+px, h]*.toFloat())
        }else{
	  //triangle(w-px as Float, h+py as Float, w as Float, h as Float, w+px as Float, h+py as Float)
	  mp.call([w-px, h+py, w, h, w+px, h+py]*.toFloat())
        }
      }
    }
  }	
}

app = new App()
app.init()
jframe = new JFrame(title:"hello",resizable:true).with{
	add(app)
	pack()
	defaultCloseOperation = JFrame.EXIT_ON_CLOSE
	resizable = true
	visible = true
}

こんど出るgroovy1.8beta3からクロージャのメモ化ができるみたいで「うわー」とか思って.とりあえずってことで1.8beta2試してます.ちなみにメモ化については以前の記事のなかでガチでやってますがこれが標準でついてくるってホントになにを考えてるんでしょう(もつのろん最大の賛辞です)

いまさらだけどメソッドポインタ(this.&triangleてやつ).すでに1.7系でcurryがおもろいかんじになっていたり,1.8から関数合成できたりするのでメソッドポインタ(じぶんのイメージだとメソッドのクロージャ化)がこれからかなり変態的に使うことができるようになるんじゃ… という期待をしております

引数をとるものは配列もとってくれないとご機嫌ナナメになる派であり,いままでas Floatを書くのメンドーだったしcollectのショートハンド(て認識でいいのかな)の*を併用して こんなんでもいけそうね的なかんじで.わかりやすいコードかどうかは別として個人的には書いたあとにスッキリ感がありました

*1:ちなみにyoupyさんTきてるみたいですね