|
来赶个末班车<---,哈哈
白冰黑河
白色的冰,黑色的河
冰坚如矛,和静如水
这个抽象概念图样基于分形三角形网格,呈现出黑白灰三个部分,白比作冰,黑比作河,灰色比作冰与河相交相互渗透的混沌,分形三角形部分由Python实现,但得到的数据结构不甚理想,故进行了一系列的数据结构操作,小弟基础不好,期间幸得@skywoolf大神的指导,最终得到三个维度的四边形数据结构,通过Index操作上述列表中的四边形的存在与否得到如上图样。
特别说明一点:这个呈现的效果其实很水,因为只是操作列表只是进行了随机删除,并没有进行很有机很有逻辑性的操作,目前小弟还在抽空深入,截稿前发了个半成品,各路大神不喜勿喷哈,哈哈哈:)
全貌如下
如下进入技术层面:
首先当然是咱们的主角(PS:小弟基础差,很多地方我自己都感觉绕,不过我把繁琐的操作封入Cluster里,保持思路表达清晰)
分形那一步的Python如下
- import rhinoscriptsyntax as rs
- l = []
- m = []
- def Main():
- global T
- T = []
- SubdivideTriangle(C, 0, T)
- def SubdivideTriangle(C, level, T):
- if level == L:
- T.append(C)
- return
- l = rs.PolylineVertices(C)
- m = rs.ExplodeCurves(C)
- a = l[0]
- b = l[1]
- c = l[2]
- d = rs.CurveMidPoint(m[0])
- e = rs.CurveMidPoint(m[1])
- f = rs.CurveMidPoint(m[2])
- Tri_1 = [a,f,d,a]
- Tri_2 = [d,e,b,d]
- Tri_3 = [f,c,e,f]
- Tri_4 = [f,e,d,f]
- level += 1
- SubdivideTriangle(rs.AddPolyline(Tri_1), level, T)
- SubdivideTriangle(rs.AddPolyline(Tri_2), level, T)
- SubdivideTriangle(rs.AddPolyline(Tri_3), level, T)
- SubdivideTriangle(rs.AddPolyline(Tri_4), level, T)
- Main()</FONT>
复制代码
番外:这个Index操作可扩展性很高,可以通过类似三维坐标调用这个数据列表的四边形,最终组成图案
|
-
-
-
2.6.gh
38.1 KB, 下载次数: 9, 下载积分: 照度 -1 lux
GH源文件
评分
-
查看全部评分
|