kaki-lsystem 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|