import math
import matplotlib.pyplot as plt
vertex = 5
x_list = [math.cos(2*math.pi*i/vertex) for i in range(0,vertex+1)] # (1,0)が始点
y_list = [math.sin(2*math.pi*i/vertex) for i in range(0,vertex+1)]
# x_list = [math.cos(2*math.pi*i/vertex + math.pi/2) for i in range(0,vertex+1)] # (0,1)が始点
# y_list = [math.sin(2*math.pi*i/vertex + math.pi/2) for i in range(0,vertex+1)]
fig = plt.figure(figsize=(4, 4), dpi=200)
ax = fig.add_subplot(111)
ax.plot(x_list, y_list, c="k", linewidth=1.0 )
ax.axis("off") # 軸をすべて消す
# 各頂点の座標
for i in range(0,vertex):
print('{:>14.10f}'.format(x_list[i]), '{:>14.10f}'.format(y_list[i]))
plt.show()
import math
import matplotlib.pyplot as plt
vertex = 5
x_list = [math.cos(2*math.pi*i/vertex) for i in range(0,vertex+1)] # (1,0)が始点
y_list = [math.sin(2*math.pi*i/vertex) for i in range(0,vertex+1)]
fig = plt.figure(figsize=(4, 4), dpi=200)
ax = fig.add_subplot(111)
ax.axis("off") # 軸をすべて消す
rotation = 2
for j in range(0,rotation):
for i in range(0,vertex):
x_list = [math.cos(2*math.pi/vertex * (i + j/rotation)) for i in range(0,vertex+1)]
y_list = [math.sin(2*math.pi/vertex * (i + j/rotation)) for i in range(0,vertex+1)]
ax.plot(x_list, y_list, c="k", linewidth=1.0 )
plt.show()
import math
import matplotlib.pyplot as plt
vertex = 4
x_list = [math.cos(2*math.pi*i/vertex) for i in range(0,vertex+1)]
y_list = [math.sin(2*math.pi*i/vertex) for i in range(0,vertex+1)]
fig = plt.figure(figsize=(4, 4), dpi=200)
ax = fig.add_subplot(111)
ax.axis("off") # 軸をすべて消す
rotation = 4
for j in range(0,rotation):
x_list = [math.cos(2*math.pi/vertex * (i + j/rotation)) for i in range(0,vertex+1)]
y_list = [math.sin(2*math.pi/vertex * (i + j/rotation)) for i in range(0,vertex+1)]
ax.plot(x_list, y_list, c="k", linewidth=1.0, alpha=math.exp(-j/2))
plt.show()
4回転した正方形を透明度を変えつつ重ねる
» 閉じる
グラデーションになるように色を変えることもできます。
» コード例
import math
from matplotlib import pyplot as plt
from matplotlib import colors
vertex = 4
x_list = [math.cos(2*math.pi*i/vertex) for i in range(0,vertex+1)]
y_list = [math.sin(2*math.pi*i/vertex) for i in range(0,vertex+1)]
fig = plt.figure(figsize=(4, 4), dpi=200)
ax = fig.add_subplot(111)
ax.axis("off") # 軸をすべて消す
rotation = 20
cn = colors.Normalize(0.0, 1.0) # グラデーション用に範囲を正規化
for j in range(0,rotation):
x_list = [math.cos(2*math.pi/vertex * (i + j/rotation)) for i in range(0,vertex+1)]
y_list = [math.sin(2*math.pi/vertex * (i + j/rotation)) for i in range(0,vertex+1)]
ax.plot(x_list, y_list, linewidth=1.0, color=plt.cm.viridis(cn(math.sin(math.pi*j/rotation))))
plt.show()