Фрактальная геометрия

Администратор
Андрей Столяров
Медаль
Сообщений: 252
Санкт-Петербург
138 дней назад
Код PYTHON:
  1.  
  2. """
  3. Дракон Хартера — Хейтуэя
  4. (см. http://elementy.ru/posters/fractals/dragon)
  5. Опубликовано на условиях свободной лицензии GNU General Public License
  6. (с) Андрей Столяров, 2015 г.
  7. """
  8. import matplotlib.pyplot as plt # Подключаем библиотеку matplotlib.pyplot и даём ей псевдоним pll
  9.  
  10. import numpy as np
  11. A=[[0,0],[1,1],[2,0]] # Исходный элемент
  12. for k in range(0,18): # Цикл по этапам измельчения
  13. for i in range(0,len(A)-1): # Цикл по элементам, в котором каждый элемент
  14. # разбивается на подэлементы
  15. A.insert(i*2+1,[0.5*A[i*2][0]+0.5*A[i*2+1][0]-(i%2-0.5)*(A[i*2][1]-A[i*2+1][1]),
  16. 0.5*A[i*2][1]+0.5*A[i*2+1][1]+(i%2-0.5)*(A[i*2][0]-A[i*2+1][0])])
  17. plt.plot(list(map(lambda x:x[0],A)),list(map(lambda x:x[1],A)))# Отрисовываем
  18.  

Результаты

Исходный элемент
""
Изображение уменьшено. Щелкните, чтобы увидеть оригинал.

1-й шаг:
""
Изображение уменьшено. Щелкните, чтобы увидеть оригинал.

2-й шаг:
""
Изображение уменьшено. Щелкните, чтобы увидеть оригинал.

18-й шаг:
""
Изображение уменьшено. Щелкните, чтобы увидеть оригинал.
Редактировалось: 2 раза (Последний: 14 декабря 2015 в 14:02)
|
Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.