Python --- 分形模块化探索(一个二叉树)

[复制链接]
跳转到指定楼层
18180 yesmely 发表于 2013-9-23 15:41:45 楼主
本着模块化思路,按照雪花的框架:http://bbs.rhino3d.asia/thread-23244-1-1.html
稍作修改,即可。
代码如下:
  1. import rhinoscriptsyntax as rs
  2. def tree1(geo,ang,sc):
  3.     ptlist=rs.DivideCurve(geo,1,False,True)
  4.     pt0=ptlist[0]
  5.     pt1=ptlist[1]
  6.     vec=rs.VectorCreate(pt1,pt0)
  7.     ptsc=rs.VectorScale(vec,sc)
  8.     pti=pt0+ptsc
  9.     line0=rs.AddLine(pt1,pti)
  10.     left=rs.RotateObject(line0,pt1,ang,None,False)
  11.     right=rs.RotateObject(left,pt1,-2*ang,None,True)
  12.     return [left,right]
  13. def trees(geos,ang,sc):
  14.     list=[]
  15.     for x in geos:
  16.         for y in tree1(x,ang,sc):
  17.             list.append(y)
  18.     return list
  19. def tree(geo,ang,deg,sc):
  20.     if deg==0:
  21.         return geo
  22.     elif deg==1:
  23.         return tree1(geo,ang,sc)
  24.     else:
  25.         return trees(tree(geo,ang,deg-1,sc),ang,sc)
  26. geo=rs.GetObject("Select a line:")
  27. ang=rs.GetInteger("Angle=")
  28. deg=rs.GetInteger("Degree=")
  29. sc=rs.GetReal("bigger scale number=")
  30. tree(geo,ang=30,deg=5,sc=1.7)
复制代码
通过这两个小例子,能够看出第一个def是核心,只要改动这里能得到更多的形式。未完。

评分

参与人数 1坛币 +2 收起 理由
Jorin + 2 赞一个!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享
您需要登录后才可以回帖 登录 | 注册成为会员

本版积分规则