kaki-lsystem 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +3 -3
- data/lib/kaki/lsystem.rb +6 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4a65959693beed33d781a3747ac7d00aeee35918
|
4
|
+
data.tar.gz: 0103556a4272c024b3b545580f52688805005630
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 999244cfa9c7a851c28a9bc02bc847ff58516f8f99942e149a2ff4c45cdda503f156ddf4db27bd9606afafeb08bebe5ce500fccac7a84859ca3f632a6c12064d
|
7
|
+
data.tar.gz: 278fdb1cef820a8abfe31fd99e8efaccbec1860bc54b4ae4c4855066adab9ad7166aaec0584b3ac402c94917c48519fcbadbc69a7e2bc26e0ce96f4e0ba02476
|
data/README.md
CHANGED
@@ -8,9 +8,9 @@
|
|
8
8
|
- インスタンスを生成します。width, height はウィンドウのサイズです。
|
9
9
|
- move(x, y)
|
10
10
|
- ペンの初期位置を移動させます。y方向は上が + です。
|
11
|
-
- prologue
|
11
|
+
- prologue do ... end
|
12
12
|
- ブロック内が描画前に実行されます。
|
13
|
-
- set(command)
|
13
|
+
- set(command) do ... end
|
14
14
|
- 与えられた command(長さ1の文字列)について、ブロック内を実行するように設定します。
|
15
15
|
- commandの「[」「]」はそれぞれスタックのプッシュ、ポップです。
|
16
16
|
- init(str)
|
@@ -18,7 +18,7 @@
|
|
18
18
|
- rule(command, str)
|
19
19
|
- command を再帰的に展開するルールです。
|
20
20
|
- draw(n)
|
21
|
-
- 再帰的に深さnだけ実行します。n = 0 ならば init(
|
21
|
+
- 再帰的に深さnだけ実行します。n = 0 ならば init(str) で指定された手続きのみ実行します。
|
22
22
|
|
23
23
|
ブロック内は Oekaki::Turtle クラスのメソッドを使います。left(), right(), forward(), color(), circle(), move(), back() など。下のURL参照。
|
24
24
|
[http://obelisk.hatenablog.com/entry/2018/02/06/025222](http://obelisk.hatenablog.com/entry/2018/02/06/025222)
|
data/lib/kaki/lsystem.rb
CHANGED
@@ -11,8 +11,9 @@ class Lsystem
|
|
11
11
|
@rule = {}
|
12
12
|
@eval = proc {}
|
13
13
|
@po = [0, 0]
|
14
|
+
@putout = false
|
14
15
|
end
|
15
|
-
attr_accessor :dir
|
16
|
+
attr_accessor :dir, :putout
|
16
17
|
|
17
18
|
def move(x, y)
|
18
19
|
@po = [x, y]
|
@@ -41,6 +42,7 @@ class Lsystem
|
|
41
42
|
pr += @rule[c] || c
|
42
43
|
end
|
43
44
|
@procedure = pr
|
45
|
+
p pr if @putout
|
44
46
|
end
|
45
47
|
end
|
46
48
|
|
@@ -53,7 +55,9 @@ class Lsystem
|
|
53
55
|
when "]"
|
54
56
|
t = stack.pop
|
55
57
|
else
|
56
|
-
|
58
|
+
todo = @command[c]
|
59
|
+
raise "#{c} not defined." unless todo
|
60
|
+
t.instance_exec(&todo)
|
57
61
|
end
|
58
62
|
end
|
59
63
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kaki-lsystem
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- obelisk
|
@@ -24,7 +24,7 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 0.1.7
|
27
|
-
description: L-system language which draws recursive forms.
|
27
|
+
description: L-system language which draws recursive image forms.
|
28
28
|
email: obelisk_1968@mail.goo.ne.jp
|
29
29
|
executables: []
|
30
30
|
extensions: []
|
@@ -40,7 +40,7 @@ files:
|
|
40
40
|
- example/lsystem_sierpinski_arrowhead.rb
|
41
41
|
- example/lsystem_sierpinski_gasket.rb
|
42
42
|
- lib/kaki/lsystem.rb
|
43
|
-
homepage:
|
43
|
+
homepage: http://obelisk.hatenablog.com/entry/2018/03/22/134130
|
44
44
|
licenses:
|
45
45
|
- MIT
|
46
46
|
metadata: {}
|