NCF参数化建筑论坛

标题: Rhinoscript三维形态球谐函数 [打印本页]

作者: wdc63    时间: 2011-1-27 16:42
标题: Rhinoscript三维形态球谐函数
本帖最后由 wdc63 于 2011-1-27 17:07 编辑


                               
登录/注册后可看大图
  球谐函数是近代数学的一个著名函数,目前被广泛用于计算机图形学,渲染光照处理以及球面映射等方面,球谐函数在形态方面也有极强的表现能力,西澳大学的Paul Bourke的球谐函数三维形态公式:r = sin(m0*phi)^m1 +
cos(m2*phi)^m3 +
sin(m4*theta)^m5 +
cos(m6*theta)^m7
是其中著名的算法之一。该公式提供8个基本参数m0-m7,使得最终形态具有无数种变化,这两天我据此写出了rhinoscript的三维球谐函数程序。感谢NCF上海-杯具兄在算法写作当中的讨论和帮助。



对于此公式的核心函数算法代码如下:
Function mainfunction(u,v,m,radius)

Dim r,collect(2)


r=0


r=r+(sin(m(0)*v))^m(1)


r=r+(cos(m(2)*v))^m(3)


r=r+(sin(m(4)*u))^m(5)


r=r+(cos(m(6)*u))^m(7)


r=r*radius


collect(0)=r*sin(v)*cos(u)


collect(1)=r*cos(v)


collect(2)=r*sin(v)*sin(u)


mainfunction=collect

End Function
Collect()数组从此公式中取得点坐标。

后面有两个源文件下载,其中之一为定义好参数的样本代码,另一文件为用户自定义参数,参数如何设置请参看提示和源代码。

运行过程如下:
先求得所有点


                               
登录/注册后可看大图

再根据之前的点索引对点进行嵌面(这里使用rhino.addsrfpt函数使得文件增大,希望有人能提供rhinoscript四点建立poly面的方法)


                               
登录/注册后可看大图



最后手动删除点得到三维形态:


                               
登录/注册后可看大图


选取不同参数可以获得十分丰富的变化,请自行尝试。

                               
登录/注册后可看大图

                               
登录/注册后可看大图

                               
登录/注册后可看大图
  [attach]14561[/attach]
由于家里电脑配置问题,模型精度不是太高,使用100,可以在自行使用时尝试更高精度。
代码下载:
球谐函数带参数范例
球谐函数用户自定义参数

作者: panhao1    时间: 2011-1-27 16:45
很漂亮的曲面~~~
作者: wdc63    时间: 2011-1-27 16:47
嗯,修改8个参数可以获得无限种可能,希望看看各位的结果
作者: Line    时间: 2011-1-27 16:53
很漂亮,数学之美果然可以囊括万物。(?)
自己学习混沌理论时有诸多疑问,带着这些疑问去感受吧,
也许没有答案,但探知的过程是值得期待的。
作者: 432982999    时间: 2011-1-27 17:01
有时间得好好研究研究了
作者: bendanxinhe    时间: 2011-1-27 17:37
看来得重新啃啃了····
作者: claudemit    时间: 2011-1-27 17:53
学习了,数学真是充满美
作者: njyqqq    时间: 2011-1-27 19:17
{:3_56:}数学可以解释一切
作者: channelfei    时间: 2011-1-27 20:01
女朋友说这东西很恶心。
生成几遍后自己也觉得恶心,晕晕的,
只好来跟楼主say sorry了
作者: amy_6186    时间: 2011-1-27 21:16
真的很好看
作者: Cosmic.Nova    时间: 2011-1-27 21:20
楼主你亮了!感谢分享
作者: 没碗    时间: 2011-1-27 21:46
9# channelfei
跑点 成型 好啊~这个球开谐函数有什么讲头么?  跑点成面挺讲究的~请问阁下是怎么成面的~
作者: mars1912    时间: 2011-1-27 21:48
看来一定要好好学习Rhinoscript......
作者: wdc63    时间: 2011-1-27 22:02
9# channelfei
跑点 成型 好啊~这个球开谐函数有什么讲头么?  跑点成面挺讲究的~请问阁下是怎么成面的~
没碗 发表于 2011-1-27 21:46

a=x+y*pphi
                                b=(x+1)+y*pphi
                                c=((x + 1) + ((y + 1) * pphi))Mod pnum
                                d=(x + (y + 1) * pphi) Mod pnum
注意之前点的索引是按点生成顺序,点每圈数量固定,因此用这四个参数找到相邻四点进行成面,呵呵这个方法从http://www.tedngai.net/上的脚本学到的。
作者: tony_tsang    时间: 2011-1-27 22:57
很漂亮。。看起来像使徒。。。
作者: skywoolf    时间: 2011-1-27 23:14
RS的跑点也很给力啊~
作者: wyx10022    时间: 2011-1-27 23:34
这个函数很神奇,渲染也很给力
作者: 没碗    时间: 2011-1-28 00:28
14# wdc63
好的 谢谢大川~~~收藏了!!
作者: 洛洛    时间: 2011-1-28 01:17
样子很吸引人,我想起高达里面的机体
作者: HiddenOwl    时间: 2011-1-28 01:29
有道理 支持 支持
作者: zhouningyi1    时间: 2011-1-28 01:52
很帅 很好的尝试
作者: dreamclean    时间: 2011-1-28 16:37
设计中怎么应用呢
作者: ou312382395    时间: 2011-1-29 18:08
23# dreamclean

我个人认为,这些基本包含的是数学的美,在探索过程中,得到一些相对简洁而又漂亮的东西就可以直接输出实品。我想某些可以制成工艺品
作者: Raymark    时间: 2011-1-29 20:04
支持技术贴~~
作者: garden916    时间: 2011-1-30 22:44
一定要好好努力学~~~~
作者: kelyli84    时间: 2011-2-2 10:27
so nice ,how to do that
作者: archizool    时间: 2011-2-2 13:20
大川怎么会想到研究这个函数呢   建模过程中又怎么推进呢   全靠wiki?
作者: wdc63    时间: 2011-2-5 15:19
大川怎么会想到研究这个函数呢   建模过程中又怎么推进呢   全靠wiki?
archizool 发表于 2011-2-2 13:20

才看到您的问题,前面研究了一些计算机图形学方面的东西,这个程序是之前在同学MAC上看到的一个power shape生成奇怪三维形体软件中的一个小部分,便去研究相关算法自己写了个,知识已经远远跟不上近代的一些几何数学了,但往下还有很多相关有趣的算法打算尝试,例如分形几何等等。
作者: sambb001    时间: 2011-2-5 21:42
太美了~~~~~~~~
作者: 羊咩咩    时间: 2011-2-6 23:26
我怎么觉得我这辈子都学不会了。。。。
作者: yanhui314    时间: 2011-2-9 18:21
有意思,羡慕
作者: yinlu1320    时间: 2011-2-16 10:58
很神奇 很有型!
作者: Grasshopper0    时间: 2011-2-16 22:50
没接触过这个软件。。。。这个和grasshopper 哪个好用?
作者: boomboom    时间: 2011-2-18 23:20
厉害啊 我寒假在家研究了一个寒假也没参透
作者: supreme3    时间: 2011-2-22 01:57
这个曲面也太漂亮了吧
作者: tjhzxc    时间: 2011-3-7 13:34
bucuo.................
作者: scandal    时间: 2011-3-14 14:39
楼主厉害,学习了{:3_53:}
作者: stjackin    时间: 2011-4-9 16:59
很好的东东
作者: xiaomi    时间: 2011-5-17 23:37
好东西,顶一个~!
作者: tremulous    时间: 2011-5-18 22:37
非常感谢楼主分享,太棒啦!
作者: xyzduan    时间: 2011-8-28 20:40
像蝴蝶。。。
作者: 岁月静好    时间: 2011-8-29 23:35
很帅气 多谢分享
作者: 岁月静好    时间: 2011-8-29 23:36
不知渲染器是什么 hs?
作者: gnr.bdd    时间: 2011-9-23 23:40
it's cool~~~
作者: wangjunxiong    时间: 2011-9-26 21:38
太牛了!真是恨自己没把书读好!
作者: 回眸醉倾城    时间: 2011-10-12 19:54
额。。。好难啊。。。
作者: owenandselena    时间: 2011-10-24 23:30
楼主 牛啊
~~~~~~
作者: truthisshit    时间: 2011-11-1 11:17
好漂亮~
就是因为从芒德球中发现了数学的美于是就扎进了RS里~
作者: 戏水云烟    时间: 2011-11-1 13:03
好厉害啊~真不错,赞~
作者: kebu    时间: 2011-11-1 13:39
看不懂  还是支持了!
作者: accsse    时间: 2011-11-3 10:42
很厉害啊~~~~~~~~~~~~
作者: mars1912    时间: 2011-11-5 13:05
哇 太好了,下来研究一下
作者: dingye    时间: 2011-11-8 12:29
比较难懂哎~~~~
作者: howldyx    时间: 2011-12-13 17:19
要好好研究下了
作者: howldyx    时间: 2011-12-15 09:58
支持支持一下
作者: miaomiao    时间: 2011-12-15 21:53
真的很好看 ,学习!!
作者: s.k.    时间: 2011-12-17 13:21
数字真是美,领教了
作者: tottyer123    时间: 2011-12-18 23:06
函数,算法,程序,用计算机去解释,真的可以展现出美的东西,数学艺术!
作者: lancer    时间: 2011-12-24 20:32
好漂亮的曲面~虽然没看懂= =
作者: wkula    时间: 2011-12-25 19:02
我要照度啊
作者: 我是吴小西    时间: 2012-3-31 15:24
说的好~牛~~
作者: 我是吴小西    时间: 2012-3-31 15:24
太有道理了~~
作者: 我是吴小西    时间: 2012-3-31 15:25
真的很神奇啊
作者: lyric    时间: 2012-4-17 22:57
这个太帅了,给力啊!!
作者: kangj    时间: 2012-4-23 18:16
不错~! 谢谢分享
作者: 64h8s    时间: 2012-4-29 06:07
看来一定要好好学习Rhinoscript......
作者: xiadandan216x    时间: 2012-5-14 16:08
学习学习,有掌握了一点知识
作者: kinikita    时间: 2012-12-23 16:50
大川师兄!!!你还是那么威武~
作者: 熊猫无敌    时间: 2013-4-8 22:02
点云到面的过程是咋样的
作者: 飞天猪(猪!    时间: 2013-10-31 13:22
样子很吸引人,我想起高达里面的机体
作者: Je_t’aime_pass    时间: 2013-12-4 16:17
给力的算法支持下
作者: jackychen    时间: 2014-4-9 14:30
漂亮 想想如何应用
作者: mysanaa    时间: 2014-8-4 21:52
好复杂的样子。。。
作者: 明南泽涵浩    时间: 2018-8-1 23:07
666666666666666666666666666666666




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