kaki-lsystem 0.0.1 → 0.0.2
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 +11 -10
- data/lib/kaki/lsystem.rb +1 -1
- 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: 3325f0987fcf71272d8c9d6b5e6eed423bbe1a93
|
4
|
+
data.tar.gz: 59e16df07cd89f0ccf10af90097189c0a28147f2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8b67d406c5837fc0877918b7364209f1a4dab1a4a181964746d3108ef3ed6db56733dacff912d8eaa3cc4bc63834470a5dc687e1339f112445d7f3fb17c9b626
|
7
|
+
data.tar.gz: d339ea54f11bcd0e3f2bf52c03b39dd1a45e435e30d14d4168bd8f7e50cfaa6203f188f0c0e7e472e477e043bfe165f52b32d486d6335c196264d7f660d5717e
|
data/README.md
CHANGED
@@ -2,24 +2,25 @@
|
|
2
2
|
|
3
3
|
再帰曲線を描く「L-system」を実装しています。内部で Gem 'oekaki' のタートルグラフィックス機能を使っています。よって、Gem 'oekaki' をインストールすることが必要です。
|
4
4
|
|
5
|
-
##
|
5
|
+
## methods
|
6
6
|
|
7
7
|
- Lsystem.new(width, height, title = "L-system")
|
8
8
|
- インスタンスを生成します。width, height はウィンドウのサイズです。
|
9
9
|
- move(x, y)
|
10
10
|
- ペンの初期位置を移動させます。y方向は上が + です。
|
11
|
-
- prologue {
|
11
|
+
- prologue \{...\}
|
12
12
|
- ブロック内が描画前に実行されます。
|
13
|
-
- set(command) {
|
14
|
-
- 与えられた
|
15
|
-
-
|
16
|
-
|
17
|
-
-
|
13
|
+
- set(command) \{...\}
|
14
|
+
- 与えられた command(長さ1の文字列)について、ブロック内を実行するように設定します。
|
15
|
+
- commandの「[」「]」はそれぞれスタックのプッシュ、ポップです。
|
16
|
+
- init(str)
|
17
|
+
- str は開始時の手続きです。
|
18
|
+
- rule(command, str)
|
18
19
|
- command を再帰的に展開するルールです。
|
19
20
|
- draw(n)
|
20
21
|
- 再帰的に深さnだけ実行します。n = 0 ならば init(st) で指定された手続きのみ実行します。
|
21
22
|
|
22
|
-
ブロック内は Oekaki::Turtle クラスのメソッドを使います。left(), right(), forward(), color(), circle(), move() など。下のURL参照。
|
23
|
+
ブロック内は Oekaki::Turtle クラスのメソッドを使います。left(), right(), forward(), color(), circle(), move(), back() など。下のURL参照。
|
23
24
|
[http://obelisk.hatenablog.com/entry/2018/02/06/025222](http://obelisk.hatenablog.com/entry/2018/02/06/025222)
|
24
25
|
|
25
26
|
|
@@ -38,9 +39,9 @@ l = Lsystem.new(520, 500, "Sierpinski gasket")
|
|
38
39
|
l.move(-250, -240)
|
39
40
|
l.prologue {color(0x55c5, 0xe363, 0xf1d5)}
|
40
41
|
l.set("-") {left(120)}
|
41
|
-
l.init("F")
|
42
42
|
l.set("F") {forward(length)}
|
43
43
|
l.set("G") {forward(length, false)}
|
44
|
+
l.init("F")
|
44
45
|
l.rule("F", "F-F-F-GG")
|
45
46
|
l.rule("G", "GG")
|
46
47
|
l.draw(n)
|
@@ -55,8 +56,8 @@ l.prologue {color(0x28a5, 0xa3c8, 0xca7)}
|
|
55
56
|
l.dir = Vector[0, 1]
|
56
57
|
l.set("-") {left(15)}
|
57
58
|
l.set("+") {right(15)}
|
58
|
-
l.init("F")
|
59
59
|
l.set("F") {forward(10)}
|
60
|
+
l.init("F")
|
60
61
|
l.rule("F", "F[+F-F-F]F[--F+F+F]")
|
61
62
|
l.draw(4)
|
62
63
|
```
|
data/lib/kaki/lsystem.rb
CHANGED
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.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- obelisk
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 0.1.7
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 0.1.7
|
27
27
|
description: L-system language which draws recursive forms.
|
28
28
|
email: obelisk_1968@mail.goo.ne.jp
|
29
29
|
executables: []
|