アニメ『フラクタル』(2011)
家族が遠隔地でばらばらに住んでるけど、ネットワークを通してアバターを使って近くに感じられる光景がすごく奇妙に思えます。テレワークならぬテレファミリー。これは家族とは言わないのでは? 近未来の家族がこんな風になったら嫌ですねえ。
このアニメの世界観って働きたくない人にとってはすごくいい。定住せずに好きな暮らしを好きなだけ楽しむ、働かなくても所得が得られる。素晴らしい世界かもしれない。
働きたい私にとってはあまり好きな設定ではないですが、冒頭に出てくる草原と海、断崖絶壁に建つ小さな家ってのは素敵すぎ。将来こんなところに住みたいです。
フラクタルいうことでコッホ曲線を描いてみます。
線分ABがあります。
線分ABを三分割して、C点、D点を求めます。
ABx= Bx - Ax ABy= By - Ay ACx= ABx / 3 ACy= ABy / 3 Cx = Ax + ACx Cy = Ay + ACy Dx = Ax + ACx*2 Dy = Ay + ACy*2
ACを60°回転させてE点を求めます。
AEにACを足して、E点をずらします。
Ex = cos(r)*ACx - sin(r)*ACy + Cx Ey = sin(r)*ACx + cos(r)*ACy + Cy
図形を描くためPython + Pillowをインストールしておきます。
# apt-get intall python-pip # pip install pillow
では、出来上がりです。
1 from PIL import Image,ImageDraw
2 from math import *
3
4 r=-pi/3
5 def div_pos(num,lis):
6 if num>0:
7 (Ax,Ay)=lis[0]
8 ind=1
9 for (Bx,By) in lis[1:]:
10 ABx= Bx - Ax
11 ABy= By - Ay
12 ACx= ABx / 3
13 ACy= ABy / 3
14 Cx = Ax + ACx
15 Cy = Ay + ACy
16 Dx = Ax + ACx*2
17 Dy = Ay + ACy*2
18 Ex = cos(r)*ACx - sin(r)*ACy + Cx
19 Ey = sin(r)*ACx + cos(r)*ACy + Cy
20 lis.insert(ind, (Cx,Cy))
21 lis.insert(ind+1,(Ex,Ey))
22 lis.insert(ind+2,(Dx,Dy))
23 ind=ind+4
24 Ax = Bx
25 Ay = By
26 div_pos(num-1,lis)
27
28 poslist=[(0,240),(640,240)]
29 div_pos(4,poslist)
30
31 cyan=(0,255,255)
32 white=(255,255,255)
33 black=(0,0,0)
34
35 img=Image.new('RGB',(640,300), black)
36 draw=ImageDraw.Draw(img)
37
38 (Ax,Ay)=poslist[0]
39 for (Bx,By) in poslist[1:]:
40 draw.line((Ax,Ay, Bx,By),fill=cyan)
41 Ax = Bx
42 Ay = By
43
44 img.save('koch.png')
45



コメント