練習問題/解答例/シェルピンスキーのギャスレット/Python
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[問題文>練習問題#w9c362ad]]
SZ = 33
s = [ [ 0 for _ in xrange(SZ) ] for _ in xrange(SZ) ]
s[0][1] = 1
for r in xrange(SZ-1):
for c in xrange(1, SZ):
s[r+1][c] = s[r][c] ^ s[r][c-1]
print '\n'.join(''.join('*' if s[r][c] else ' ' for c in...
ギャス「ケ」ットだった。死にたい。
#coding :utf-8
import turtle
import math
A = (0,270)
B = (- 270 / 2 * math.sqrt(3),-270 / 2)
C = (270 / 2 * math.sqrt(3),-270 / 2) #最初の三角形の各...
sta = [A,B,C] #最初の三角形の各座標をリストに格納します。
turtle.penup()
turtle.goto(sta[0])
turtle.pendown()
turtle.fill(True)
turtle.goto(sta[1])
turtle.goto(sta[2])
turtle.goto(sta[0])
turtle.fill(False) #最初の黒塗りの三角形を描画します。
turtle.fillcolor('white') #切り取りを白く塗りつぶして表...
def hollow(a): #三角形を切り取る関数を定義します。
ma = ((a[1][0] + a[2][0]) / 2,(a[1][1] + a[2][1]) / 2)
mb = ((a[0][0] + a[2][0]) / 2,(a[0][1] + a[2][1]) / 2)
mc = ((a[0][0] + a[1][0]) / 2,(a[0][1] + a[1][1]) / 2) ...
turtle.penup()
turtle.goto(ma)
turtle.pendown()
turtle.fill(True)
turtle.goto(mb)
turtle.goto(mc)
turtle.goto(ma)
turtle.fill(False) #各中点を結んで、白色で塗りつぶしま...
ta_list = [sta] #三角形のリストを作成します。
def nta(a): #引数に三角形の座標をとり、そこから新たな三...
ma = ((a[1][0] + a[2][0]) / 2,(a[1][1] + a[2][1]) / 2)
mb = ((a[0][0] + a[2][0]) / 2,(a[0][1] + a[2][1]) / 2)
mc = ((a[0][0] + a[1][0]) / 2,(a[0][1] + a[1][1]) / 2)
ta_list.append([a[0],mc,mb])
ta_list.append([mc,a[1],ma])
ta_list.append([mb,ma,a[2]])
def sg(n): #シェルピンスキーのギャスケットを描く関数です。
for i in range(n):
for j in range(3 ** i):
nta(ta_list[(3 ** i - 1)/2 + j]) #三角形の個数が等比...
for k in range(len(ta_list)): #ta_listの要素の個数分、...
hollow(ta_list[k])
turtleモジュールを使って絵を書く方式のものです。
終了行:
[[問題文>練習問題#w9c362ad]]
SZ = 33
s = [ [ 0 for _ in xrange(SZ) ] for _ in xrange(SZ) ]
s[0][1] = 1
for r in xrange(SZ-1):
for c in xrange(1, SZ):
s[r+1][c] = s[r][c] ^ s[r][c-1]
print '\n'.join(''.join('*' if s[r][c] else ' ' for c in...
ギャス「ケ」ットだった。死にたい。
#coding :utf-8
import turtle
import math
A = (0,270)
B = (- 270 / 2 * math.sqrt(3),-270 / 2)
C = (270 / 2 * math.sqrt(3),-270 / 2) #最初の三角形の各...
sta = [A,B,C] #最初の三角形の各座標をリストに格納します。
turtle.penup()
turtle.goto(sta[0])
turtle.pendown()
turtle.fill(True)
turtle.goto(sta[1])
turtle.goto(sta[2])
turtle.goto(sta[0])
turtle.fill(False) #最初の黒塗りの三角形を描画します。
turtle.fillcolor('white') #切り取りを白く塗りつぶして表...
def hollow(a): #三角形を切り取る関数を定義します。
ma = ((a[1][0] + a[2][0]) / 2,(a[1][1] + a[2][1]) / 2)
mb = ((a[0][0] + a[2][0]) / 2,(a[0][1] + a[2][1]) / 2)
mc = ((a[0][0] + a[1][0]) / 2,(a[0][1] + a[1][1]) / 2) ...
turtle.penup()
turtle.goto(ma)
turtle.pendown()
turtle.fill(True)
turtle.goto(mb)
turtle.goto(mc)
turtle.goto(ma)
turtle.fill(False) #各中点を結んで、白色で塗りつぶしま...
ta_list = [sta] #三角形のリストを作成します。
def nta(a): #引数に三角形の座標をとり、そこから新たな三...
ma = ((a[1][0] + a[2][0]) / 2,(a[1][1] + a[2][1]) / 2)
mb = ((a[0][0] + a[2][0]) / 2,(a[0][1] + a[2][1]) / 2)
mc = ((a[0][0] + a[1][0]) / 2,(a[0][1] + a[1][1]) / 2)
ta_list.append([a[0],mc,mb])
ta_list.append([mc,a[1],ma])
ta_list.append([mb,ma,a[2]])
def sg(n): #シェルピンスキーのギャスケットを描く関数です。
for i in range(n):
for j in range(3 ** i):
nta(ta_list[(3 ** i - 1)/2 + j]) #三角形の個数が等比...
for k in range(len(ta_list)): #ta_listの要素の個数分、...
hollow(ta_list[k])
turtleモジュールを使って絵を書く方式のものです。
ページ名: