의사 프랙탈 도형을 Python을 사용하여 그려 보았습니다.

9423 단어 파이썬matplotlib
오늘은 낙서로 쓴 도형을 프로그램(matplotlib)으로 그려 보려고 생각하고, Python을 사용하여 그려 보았다.

이번에 사용하는 프로그램

fractal.py
import matplotlib.pyplot as plt
import matplotlib.collections as mc
import numpy as np
import math

def return_point(p1, p2):
    point = (p2-p1)*0.08 + p1
    return point

N = 1000
x = np.linspace(-1, 1, N)

x_point = [0, 100, 200]
y_point = [0, math.sqrt(3)*100, 0]
for i in range (N):
    new_x_point = return_point(x_point[i], x_point[i+1])
    new_y_point = return_point(y_point[i], y_point[i+1])
    x_point.append(new_x_point)
    y_point.append(new_y_point)

fractal = [[(x_point[i], y_point[i]), (x_point[i+1], y_point[i+1])] for i in range(N)]

lc = mc.LineCollection(fractal, colors='#333333', linewidths=1, antialiased=True)


fig = plt.figure(figsize=(10,10))
ax = fig.add_subplot(1,1,1)

# ↓非本質的な設定
ax.set_axis_bgcolor('#f3f3f3')
plt.gca().spines['right'].set_visible(False)
plt.gca().spines['left'].set_visible(False)
plt.gca().spines['top'].set_visible(False)
plt.gca().spines['bottom'].set_visible(False)
plt.tick_params(labelbottom=False, labelleft=False, labelright=False, labeltop=False)
# ↑非本質的な設定

ax.add_collection(lc)
ax.autoscale()
plt.savefig('./fractal.png')

7 행째 point = (p2-p1)*0.08 + p10.08의 값을 바꾸어 보는 것도 일흥.

실행 후





오, 아름다운 (CD 재킷에있을 것)
(그런데, 뭔가 이름이 붙어 있으면 코멘트란에서 가르쳐 주세요)

【추기】

엄밀하게는 프랙탈 도형이 아니라고 생각하고 제목을 "프랙탈 도형을 Python을 사용하여 그려 보았다"에서 "가짜 프랙탈 도형을 Python을 사용하여 그려 보았다"로 변경했습니다.

참고한 기사



고마워요.

파이썬으로 프랙탈 도형 만들기 part1 (쉘핀 스키의 개스켓)
htps : // 코 m / 오카 카츠 / ms / f2에 79fc501에 d9f799734

Matplotlib에서 여러 선분을 그리는 방법
https://omedstu.jimdofree.com/2019/10/04/matplotlib에서 여러 선 집합을 그리는 방법 /

matplotlib의 엄청나게 정리
https://qiita.com/nkay/items/d1eb91e33b9d6469ef51#2-그래프 axes 만들기

좋은 웹페이지 즐겨찾기