kaki-lsystem 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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: {}
|