main2

lab

【永原塾】アルゴリズムと一本の木

ようやく暖かい日が増えてきましたね。桜もそろそろでしょうか。

さて、先日【永原塾】が開催されましたので、また簡単にご紹介したいと思います!
前回は、コンパスや定規を使用して図形を描きましたが、今回は2つの方法で木を表現しました。

1. PostScript


まずは、psのフラクタルを描画するtree.psを使用して、様々な木を描きました。

%! tree.ps
%%BoundingBox: 0 0 500 700

/tree { % order ratio angle length
gsave
4 dict begin
/length exch def
/angle exch def
/ratio exch def
/order exch def
newpath 0 0 moveto length 0 translate 0 0 lineto stroke
order 0 ne { % if
angle rotate
order 1 sub ratio angle length ratio mul tree
angle -2 mul rotate
order 1 sub ratio angle length ratio mul tree
} if
end
grestore
}def

250 20 translate
90 rotate
.5 setlinewidth

%枝分かれの数 もとの枝に対する先の枝の長さ率 枝分かれの角度 根元の枝の長さ(pt)
2 .8 30 100

tree
showpage
↑これを実行すると、

4eec17bc-35e2-427c-8f0c-f3158639deda
↑こうなります。

%枝分かれの数 もとの枝に対する先の枝の長さ率 枝分かれの角度 根元の枝の長さ(pt)
2 .8 30 100
↑ここの数値を変更することで、

923388a8-4be4-440d-892f-e286e10a685f
↑こんな木になったりと、様々に変化します。

はじめは適当にパラメータを変え、おのおの自由に木を作成しました。
その後は、「形容詞」を決め、各自テーマを持って木を表現。
うれしい木、かなしい木、おいしい木、あぶない木…など

これがなかなか難しかったです。思い描く木を表現するには、パラメータをどう変更するべきなのか。
何度もやり直しながら、「◯◯な木」を完成させました。

image

ちなみに、このワークショップですが、元々は永原さんの生徒さんが考えたワークショップのようです!

2. 一枚の紙


次は、縦長の紙に切り込みを入れて木を表現しました。

1
↑こんな感じに切り込みを入れて、開きながら紙に貼っていくと…

2

↑木ができました!!

このワークショップは、「木をかこう」という本に描かれている内容になります。
作者は、2本ずつにわかれて伸びる木の枝の部分をとじていくと、もとの幹の太さと同じになる(一本の柱のようになる)と考えたようで、それを試したものがこのワークショップです。

しかし、同じ法則で作成しても、これだけのバリエーションの木が生まれます。
(貼り方にも個性が出て面白いです。)

3

今回のワークショップでは、

法則を発見すると様々なものが作れる、
つまり、アルゴリズムをしっかり作れば、あとはプログラミング次第で何でもできる。


ということを学びました。
これは、コードの世界の中だけではなく、何かを手で造形するときにも使える考え方なんですね。
決められた時間内で作業するということは、手を動かすだけではなく分析も必要になってくると永原さんはおっしゃっていました。

そして今回はこのワークショップを活かし、アルゴリズムを探す宿題が出ました。
例)へのへのもへじ(→これらの文字を組み合わせると顔ができる)

難しそうですが、閃いたら楽しそうですね!次回の永原塾で発表予定です。