NCF参数化建筑论坛

标题: 长啊长的树 [打印本页]

作者: panhao1    时间: 2010-3-28 18:57
标题: 长啊长的树
本帖最后由 panhao1 于 2010-3-28 18:59 编辑

原来是rs(参见《101》)脚本 后来被我改写为gh脚本(当然是原创的啦)

为了说明gh脚本能取代rs(理论上的)
我做了个对比 (两颗树都是gh输出) 第二个加了实时bake脚本(我以前帖子中提到过关键性代码)  看起来像rs吧


还有视屏 大家看看吧

好了先看图
作者: panhao1    时间: 2010-3-28 19:03
本帖最后由 panhao1 于 2010-3-28 19:06 编辑

《101》中的rs代码
Call Main()
Sub Main()
        Dim ptStart: ptStart = Array(0,0,0)
        Dim vecDir: vecDir = Array(0,0,1)
        Dim Props: Props = Array(3,4,6,5,0.8,30,0.7)
        Dim Generation: Generation = 2
        Call RecursiveGrowth(ptStart, vecDir, Props, Generation)
End Sub


Sub RecursiveGrowth(ByVal ptStart, ByVal vecDir, ByVal Props(), ByVal Generation)
        If Generation > Props(2) Then Exit Sub
        Dim ptGrow, vecGrow, newTwig
        Dim newProps : newProps = Props
        newProps(3) = Props(3) * Props(4)
        newProps(5) = Props(5) * Props(6)
        If newProps(5) > 90 Then newProps(5) = 90
        Dim N, maxN
        maxN = CInt(Props(0) + Rnd() * (Props(1) - Props(0)))
        For N = 1 To maxN
                ptGrow = RandomPointInCone(ptStart, vecDir, 0.25*Props(3), Props(3), Props(5))
                newTwig = AddArcDir(ptStart, ptGrow, vecDir)
                If Not IsNull(newTwig) Then
                        vecGrow = CurveTangent(newTwig, CurveDomain(newTwig)(1))
                        Call RecursiveGrowth(ptGrow, vecGrow, newProps, Generation+1)
                End If
        Next
End Sub
作者: panhao1    时间: 2010-3-28 19:07
我的关键性代码

If isnothing(pt) Then Exit Sub
    Dim Svector As New On3dPoint(0, 0, 1)
    Dim props2 As Integer = 0
    Dim arcs As New List(Of OnArc)
    Call Start(pt, svector, props0, props1, props2, gen, max1, min1, max2, min2, arcs)
    a = arcs

Public  Sub start(ByVal pt As On3dPoint, ByVal dir As on3dvector, ByVal  props0 As Integer, ByVal props1 As Integer, ByVal props2 As Integer, ByVal gen As Integer, ByVal max1 As Double, ByVal min1 As Double, ByVal max2 As Double, ByVal min2 As Double, ByRef arcs As list(Of onarc))
    If props2 >gen Then Exit Sub
    'randomize
    For i As int32=1 To (rnd() * props1 + props0)
      Dim randpt As New on3dpoint
      randpt = randompoint(pt, max1, min1, max2, min2, dir)
      Dim wing As New OnArc
      wing = addarc(pt, randpt, dir)
      If isnothing(wing) Then Exit Sub
      Dim direction As New on3dvector
      direction = wing.TangentAt(wing.Domain(1))
      arcs.add(wing)
      Call Start(randpt, direction, props0, props1, props2 + 1, gen, max1, min1, max2, min2, arcs)
    Next
  End Sub
作者: yl0110    时间: 2010-3-28 21:01
编程流的啊·······
作者: odys    时间: 2010-3-28 22:48
晕,GH里不还得用VB嘛。。其实差不多的
作者: panhao1    时间: 2010-3-28 23:29
本帖最后由 panhao1 于 2010-3-29 12:18 编辑

6# odys
不是共同语言..
作者: casshern    时间: 2010-3-28 23:50
哇。。。。很厉害噢。。。和那个L SYS是不是有关联的吖???
作者: skywoolf    时间: 2010-3-29 06:46
前几天在Rabbit的练习里看了几个树的脚本,不知道路子是不是一样的,不过看起来这个形态更自由一些~
作者: rreeff    时间: 2010-3-29 08:23
这个是有代码的啊
作者: aiko_3at    时间: 2010-3-29 11:02
很强大~~学习了~~
作者: 董羽天    时间: 2010-3-29 17:59
学习学习 O(∩_∩)O哈哈~
作者: 城市边缘工厂    时间: 2010-3-29 18:32
多看看,多学学。学习了
作者: rockband620    时间: 2010-3-30 09:43
学习学习`````` 谢谢哦`````
作者: wanghan06    时间: 2010-3-31 16:33
其实一直不知道树能来做什么,见人做个人流分析的。
作者: 咖啡屋    时间: 2010-4-1 12:20
学习学习`````` 谢谢哦`````
作者: sfancys    时间: 2010-4-1 17:34
赞一个~!!!!!!
希望GH完全取代RS的一天早点到来
省了学习RS的时间
哈哈~!!!!!
作者: richo    时间: 2010-4-3 01:08
希望人工智能的时代早点到来!!
作者: unicorn003    时间: 2010-4-4 01:59
想做个有意思的vb不可缺少,可是对我来说太难了啊
作者: skyvsapple1    时间: 2010-4-10 19:41
顶一下先~~~
作者: miniorange    时间: 2010-4-11 01:28
樓主太強大
作者: easytogoyi    时间: 2010-5-3 11:53
漂亮,喜欢,学习学习
作者: jasonbb88    时间: 2010-5-13 17:31
解压了有170M    太神奇了
作者: panhao1    时间: 2010-5-13 18:16
23# jasonbb88

你转一下格式就变小了 大概1M左右
作者: zeusroars    时间: 2010-5-13 20:15
強大 一定要支持~
作者: liubaolalala    时间: 2010-5-13 21:35
学习了!感谢分享!
作者: jeackal    时间: 2010-5-21 16:30
不懂也装下,,,好东西,嘿嘿
作者: huhu    时间: 2010-6-9 10:06
学习学习~~
作者: chichublue    时间: 2010-6-14 13:36
能发gh原文件么?
作者: vieriw    时间: 2010-9-24 19:18
生长的GH 好东西啊
作者: minnie    时间: 2010-9-26 20:23
can't believe it!
作者: jacob25    时间: 2010-9-28 20:11
看不懂,不過謝謝分享~~
作者: LLchen    时间: 2010-9-28 20:56
这个强大了,强大到我根本不知道LZ在做什么
作者: venusm    时间: 2010-11-13 16:39
能改变三维宽度么?
作者: arvin1018    时间: 2010-11-13 18:23
好多vb看來還程式是底子厚阿
作者: DTshow    时间: 2010-11-13 20:48
好好好好好好
作者: 19820514zq    时间: 2010-11-14 14:18
什么东西呢
作者: gufang    时间: 2010-11-16 16:16
学习学习·····
作者: mango0709    时间: 2010-11-16 19:50
学习啦~真的好棒
作者: mango0709    时间: 2010-11-16 19:52
还有一个,还是得再顶一下
作者: 行至    时间: 2010-11-21 01:29
抱走,好好学习!
作者: CL1988CL    时间: 2010-11-22 20:36
这个树真漂亮
作者: ccocean    时间: 2010-11-22 23:49
顶起来,必须
作者: arch_oyy    时间: 2010-11-23 03:08
强大啊!!!
作者: waccssgw    时间: 2011-1-6 01:59
效果不错~~
作者: TG123    时间: 2011-1-6 11:17
支持一下。
作者: huoge003    时间: 2011-1-9 17:06
特让它为儿童
作者: kmr_10    时间: 2011-4-11 20:19
有意思...不过script这方面没研究..学习
作者: kmr_10    时间: 2011-4-11 20:23
顶一下先~~~
作者: sj255125    时间: 2012-3-11 00:19
水喔~感謝分享~
作者: 左手◆23年    时间: 2014-2-16 22:42
感谢分享,顶一个
作者: 耳有心门    时间: 2014-2-24 17:02
神奇的树结构,对菜鸟来说太难了
作者: 曲线救国    时间: 2019-1-3 11:51
感恩感恩 谢谢分享啊





欢迎光临 NCF参数化建筑论坛 (http://bbs.ncf-china.com/) Powered by Discuz! X3.2