Pygame接口应用?递归分形

作者:袖梨 2022-07-02
[by Sunyuemng [email protected] 转载请保留]
  这是上半年对分形有兴趣的写的,用到了pygame作为显示接口,
你把pygame的接口函数集看看就很清楚了,然后就是充分利用
了python的数据类型的优势,对对象很陌生的朋友也很容易搞清
下面的程序,有兴趣的朋友可以看看。
  请安装合适版本的Python和PyGame。
#filename fractal.py
import pygame
from pygame.locals import *
fg=220,220,220
bg=0,0,0
#如何指定向量:
#将图形右转90度,使level=1的唯一的线段和线段(0,0)^(1,0)重合,
#然后取父线起点、终点,母线起点,起点指向终点的向量
#∧形填充线父体
f_a=[(.5j,1),
(-.5j,1)]
f_b=[(0,.5),
(.5+.5j,.5-.5j)]
#填充线母体
m_a=[(.5+.25j,.5),
(.5-.25j,.5),
(.25-.5j,.5j),
(.25+.5j,-.5j)]
#龙曲线
m_b=[(.5-.5j,.5+.5j),
(.5-.5j,-.5+.5j)]
#Koch
m_c=[(0,.333),
(.333,.167-.289j),
(.5-.289j,.167+.289j),
(.667,.333)]
#Sierpinski变种
m_d=[(.25-.433j,-.25+.433j),
(.25-.433j,.5),(1,-.25-.433j)]
#四种树
m_e=[(1,.4-.4j),
(1,.4+.4j)]
m_f=[(.5,.5),
(.3,.38+.25j),
(.3,.38-.25j)]
m_g=[(0,.4),(.4,.3),
(.7,.3),(.4,.25-.17j),
(.7,.25+.17j)]
m_h=[(0,.5),
(.5,.5),
(1,.21-.2j),
(1.21-.2j,.41-.12j),
(1.62-.32j,.38+.06j),
(1,.37+.2j),
(1.37+.2j,.36),
(1.73+.2j,.27-.16j)]
p_a=(80+230j,200+0j)
p_b=(50+300j,300+0j)
p_c=(200+330j,-110j)
NAME=['Filling line 1',
'Dragon curve',
'Koch',
'Sierpinski-like',
'Filling line 2',
'Tree 1',

相关文章

精彩推荐