import rhinoscriptsyntax as rs
c=rs.GetObject('plz sel triangle', rs.filter.curve) #先在rhino里用多段线画一个三角形,运行这个脚本的时候会提示你先选择三角形
step = 3 # 数字可以改 递归的级数 不要调太大了 不然电脑跑不动了 哈哈
"""
下面这段是简单的递归程序,意思是找到三角形的三个顶点,然后计算出两点间的中点,然后在连接起来生成新的三角形 就递归循环~~直到你上一个设定的级数~
"""
results = []
def Sub(c,current):
if current == step: results.append(c) return
ctrlPts = rs.CurvePoints(c)
A=ctrlPts[0] B=ctrlPts[1] C=ctrlPts[2]
D = (A+B)/2 E = (B+C)/2 F = (C+A)/2
rs.AddPolyline([C,F,E,C]) rs.AddPolyline([B,E,D,B]) rs.AddPolyline([D,F,A,D])
current += 1
Sub(rs.AddPolyline([C,F,E,C]),current) Sub(rs.AddPolyline([B,E,D,B]),current) Sub(rs.AddPolyline([D,F,A,D]),current)
#这个就是call这个程序了,c就是你在rhino里画的三角形,0就是从0级开始
Sub(c,0)
——————————————————————————————————
那个在rhino 5里输入: EditpythonScript
会调出marco编辑器,然后把上面的程序复制进去,再rhino里画好一个三角形,然后运行程序。
|
举报