アニメ『フラクタル』(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
コメント