memorandums

日々の生活で問題解決したこと、知ってよかったことなどを自分が思い出すために記録しています。

jruby + processing + interactive unit eB-P でお絵描き ver 0.01

昨日の続きです。

とりあえず動くものができました。以下のような感じです。

プログラムはごくわずかです。稚拙ですがこれも晒します。


require "java"

include_class "processing.core.PApplet"

class Point
def initialize(x, y)
@x = x
@y = y
end
def x
@x + rand(6) - 3
end
def y
@y + rand(6) - 3
end
end

class Sketch < PApplet
def setup
size 400, 400
# smooth
stroke_weight 3
@points = []
@pl = []
end
def draw
background 0
tmp = nil
for i in @points
if tmp != nil then line i.x, i.y, tmp.x, tmp.y end
tmp = i
end
for i in @pl
tmp = nil
for j in i
c = color(random(255),random(255),random(255))
stroke c
if tmp != nil then line j.x, j.y, tmp.x, tmp.y end
tmp = j
# ellipse j.x, j.y, 3, 3
end
end
end
def mouseReleased
@pl << @points
@points = []
end
def mouseDragged
@points << Point.new(mouseX, mouseY)
end
def keyPressed
@points = []
@pl = []
end
end



JFrame = javax.swing.JFrame
frame = JFrame.new "Sketch"
applet = Sketch.new
frame.content_pane.add applet
frame.default_close_operation = JFrame::EXIT_ON_CLOSE
applet.init
frame.pack
frame.visible = true

ちょっとしたプログラムなんですが、JRuby+Processingではデバッグが結構大変でした。

こまかいエラーメッセージが表示されずエラー箇所のメソッド名だけ表示されます。

やはりProcessingに関してはJavaで作った方が効率的なように感じました。

こちらのプログラムもちゃんと最後まで育てたいですね。。。狙いは色々です。作りながら見定めたいです。

  • 書いた文字が(やわらかく)動く。
  • 奇麗化する。
  • 近しい文字がくっつき勝手にグルーピングされる。
  • (やわらかく)整列する。

どちらかというと、業務支援や作業支援というよりは、発想支援や記憶支援や理解支援?などに役立つような操作方法/見せ方を研究したいと考えています。