昨日の続きです。
とりあえず動くものができました。以下のような感じです。
プログラムはごくわずかです。稚拙ですがこれも晒します。
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
endclass 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で作った方が効率的なように感じました。
こちらのプログラムもちゃんと最後まで育てたいですね。。。狙いは色々です。作りながら見定めたいです。
- 書いた文字が(やわらかく)動く。
- 奇麗化する。
- 近しい文字がくっつき勝手にグルーピングされる。
- (やわらかく)整列する。
どちらかというと、業務支援や作業支援というよりは、発想支援や記憶支援や理解支援?などに役立つような操作方法/見せ方を研究したいと考えています。