■
ここからいちばん近い来来亭はどこだと琵琶湖湖畔で佇むおれ*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きてるみたいですね