NCF参数化建筑论坛

标题: rhino script 莫比乌斯嵌套曲面 [打印本页]

作者: ajun    时间: 2011-8-7 01:00
标题: rhino script 莫比乌斯嵌套曲面
Call main()
Sub main()



n=80

m=80

Dim pts()

ReDim pts(n*m-1)



For i=0 To n-1

u=2*rhino.Pi*(2*(i/(n-1))-1)



For j=0 To m-1

v=2*rhino.Pi*(2*(j/(m-1))-1)



pts(i*m+j)=surface(u,v)

Next

Next



rhino.addsrfptgrid array(n,m),pts

End Sub


Function surface(u,v)



x=cos(u)*(4+3*sin(v)*cos(u/1)-3*sin(2*v)*sin(u/1)/2)

y=sin(u)*(4+3*sin(v)*cos(u/1)-3*sin(2*v)*sin(u/1)/2)

z=(s*sin(u/1)*sin(v)+5*cos(u/1)*sin(2*v)/1)



surface=array(x,y,z)
End Function



我小试了 用程序建模
请高手来解析 这里面的逻辑
这是王文栋书中的赠送的经典曲面编程过程
望王文栋学长不要责怪 只是为了更好的交流与学习
作者: architectman    时间: 2011-8-7 09:44
感觉有点不太对。。。是莫比乌斯环么???
作者: 阿龟    时间: 2011-8-7 09:45
利用莫比乌斯的数学方程。surface里面存储的是一系列点集合,然后pts立面是包含了这些点的集合,最后用addsrfptgrid方法生成面~~
我感觉数学公式好像不是普通数学知识的结果~
以上是菜鸟的想法
作者: hanniansen    时间: 2011-8-7 10:56
第二张图好怪啊
作者: 寒江孤叟00    时间: 2011-8-7 11:14
好神奇的莫比乌斯环~~~~~~~~~~~~~~~~~~~~
作者: ajun    时间: 2011-8-7 12:57
2# architectman
作者: ajun    时间: 2011-8-7 12:58
是莫比乌斯嵌套曲面,是两个莫比乌斯曲面扣在一起的。
作者: uuuf8    时间: 2011-8-7 13:46
在我睁一只眼闭一只眼的情况下,发两个就差不多了,而且还没有表明出处和版权信息。。。。。。
作者: ajun    时间: 2011-8-7 13:50
7# ajun
作者: ajun    时间: 2011-8-7 13:53
有说是你的书上的啊,哎~以后肯定不发了
好吧  我只是有些问题 想让别人来解答而已。
回复的时候我都会说这是你的东西,不要误会我。
作者: uuuf8    时间: 2011-8-7 14:03
10# ajun

我希望能看到你对这些例子的调整及改动,
哪怕是再小的改动,
也是学习与进步的很好开始,
我是很乐意看到的
作者: ajun    时间: 2011-8-7 14:17
好的  我会努力学习的  谢谢学长  再次道歉
作者: 阿龟    时间: 2011-8-7 14:59
我想知道是哪本书啊?
作者: ajun    时间: 2011-8-7 15:08
是《rhino script 参数建模》王文栋 编著 中国青年出版社发行  新华书店 当当和卓越上都有买
作者: lyjackson    时间: 2011-8-7 16:29
这个真帅,想问作者是自己写的吗?
作者: ajun    时间: 2011-8-7 16:34
17# lyjackson 是王文栋写的 《rhino script 参数建模》 中国青年出版社出版 当当卓越均有销售
作者: architectman    时间: 2011-8-8 10:03
。。。对对 我失败了 一下没看出来 6# ajun
作者: jianzhudashi    时间: 2011-8-8 13:41
哎   现在的水平力这个还很远啊
作者: jianzhudashi    时间: 2011-8-8 13:42
grasshopper 能做成这样吗
作者: MOL    时间: 2011-8-9 21:27
NCF ARCHITECTURE DESIGNS  这字体是什么字体啊 帮忙告诉一下呗!!!
作者: www.yyssf.com    时间: 2011-8-20 02:58
大家好我是新来的请大家多关照啊
作者: liyanyanhong    时间: 2011-10-15 12:15
.............................{:3_46:}
作者: lorenzo13    时间: 2011-10-18 03:09
支持一下!!!!!
作者: jasonroc    时间: 2011-10-28 23:37
回去好好研究研究~
作者: zhangchunwei    时间: 2011-10-29 00:56
感谢分享,谢谢谢谢
作者: zhangchunwei    时间: 2011-10-29 00:57
谢谢谢谢,感谢分享
作者: 戏水云烟    时间: 2011-11-1 13:21
看看~~~{:3_50:}
作者: togacoga    时间: 2012-1-29 23:41
goooooooooood
作者: shisanlang    时间: 2012-2-2 10:54
好神奇的莫比乌斯环
作者: 同行    时间: 2012-9-23 13:55
        n = 60
        m = 15
        Dim pts()
        ReDim pts(n*m-1)
       
        For i=0 To n-1
                u = 2*Rhino.pi*i/(n-1)
               
                For j = 0 To m-1
                        v =2*Rhino.pi*j/(m-1)
                       
                        pts(i*m+j) = surface(u,v)
                Next
        Next
       
        Rhino.addSrfPtGrid Array(n,m), pts

End Sub

Function surface(u,v)

        x=(2 + cos(v/2)*sin(u)-sin(v/2)*sin(2*u))*cos(v)
        y=sin(v/2)*sin(u)+cos(v/2)*sin(2*u)
        z=(2+cos(v/2)*sin(U)-sin(v/2)*sin(2*u))*sin(v)

        surface=Array(x,y,z)
End Function
我输入之后,运行时出现(没定义变量n),怎么回事?王老师这本书真心看不懂
作者: lorenzo13    时间: 2012-11-1 21:04
代码中间需要对各种常量定义啦,每段前加一点就可以运行了
Call Main()
Sub Main()
        Dim n,m
        n=30
        m=90
        Dim pts()
        ReDim pts(n*m-1)
        Dim i,j,u,v
        For i=0 To n-1
                u=2*rhino.Pi*i/(n-1)
                For j=0 To m-1
                        v=2*rhino.Pi*j/(m-1)
                        pts(i*m+j)=surface(u,v)
                Next
        Next
        rhino
        rhino.AddSrfPtGrid Array(n,m),pts
End Sub
Function surface(u,v)
        Dim x,y,z
        y=(2+cos(v/2)*sin(u)-sin(v/2)*sin(2*u))*cos(v)
        z=sin(v/2)*sin(u)+cos(v/2)*sin(2*u)
        x=(2+cos(v/2)*sin(u)-sin(v/2)*sin(2*u))*sin(v)
        surface=Array(x,y,z)
       
End Function




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