jython + p5#2

後半。本当にやりたかったのはここから。
irbでやってるみたいに、インタラクティブにコードを書き換える。
Processing by Ruby #2 - Quietstar

コードはrubyとほとんど同じ。下のコードをSketchTest2.pyとか名前付けて、保存。
jythonを起動して、

>>> from SketchTest2 import *

これでjrubyのloadと同じなのかな。

>>> applet = Sketch()

で、Sketchクラスのインスタンスを作る。

>>> run(applet)

とするとアプレットが動きます。ランダムな位置に四角が描かれては消される。
jrubyでの例と同じように

applet.stop()

とかすれば止まるし、

applet.strokeWeight(5)

とかすれば線が太くなる。これは楽しい。
GUIもCUIもPhysical Computingも全部組み込みたいものだ。

from javax.swing import JFrame
from processing.core import PApplet

class Sketch(PApplet):
 def __init__(self):
  pass
 def setup(self):
  self.size(200, 200)
  self.rect(0, 0, 100, 100)
 def getField(self, name):
  return self.class.superclass.getDeclaredField(name).get(self)
 def draw(self):
  self.background(255);
  self.rect(self.random(self.width), self.random(self.height), 10, 10)

def run(applet):
 frame = JFrame(title="Processing",
  resizable = 0,
  defaultCloseOperation=JFrame.EXIT_ON_CLOSE)
 frame.contentPane.add(applet)
 applet.init()
 frame.pack()
 frame.visible = 1

if __name__ == '__main__':
 run(Sketch())

  • hysysk draw()メソッド書き換えの方法がわかんない。
    class書いて、例えばまた
    applet = Sketch()
    して
    run(applet)
    したら新しいウインドウが出る。
    それはそれでよし。
    • 2007-11-18 00:38