NCF参数化建筑论坛

标题: 纸灯笼(附代码) [打印本页]

作者: 夜神    时间: 2010-6-18 13:50
标题: 纸灯笼(附代码)
http://ncf.5d6d.com/thread-893-1-1.html
上面这位兄台提的问题,今天刚看到。

[attach]8785[/attach]

代码刚编写的,没有好好整理,不过还好不算复杂。

option explicit
run Rhino.Integerbox("slices sum:",240),Rhino.Integerbox("waves sum:",20)

function run(n,nVp)
n=int(n/4)*4
dim cvs(3)
cvs(0)=rhino.addline(array(0,0,0),array(0,0,70))
cvs(1)=rhino.addline(array(0,0,0),array(10,0,0))
cvs(2)=rhino.addline(array(0,0,70),array(5,0,90))
cvs(3)=rhino.addcurve(array(array(10,0,0),array(10,0,20),array(30,0,40),array(50,0,60),array(50,0,90),array(40,0,100),array(25,0,105),array(15,0,100),array(5,0,90)))
dim srf : srf=rhino.AddEdgeSrf(cvs)
rhino.deleteobjects cvs
dim nU,nV : nU=1 : nV=nVp*2
dim domainU : domainU=Rhino.SurfaceDomain(srf,0)
dim domainV : domainV=Rhino.SurfaceDomain(srf,1)
dim dU: dU=(domainU(1)-domainU(0))/nU
dim dV: dV=(domainV(1)-domainV(0))/nV
dim puv() : redim puv(nU,nV)
dim pNormal,pTempUV,pTempXYZ,pTempXYZ1
dim i,j
dim alfa : alfa=360/n  'double sided
dim dAlfa
dim p  : redim p((nU+1)*(nV+1)-1)
for i=0 to nU
  for j=0 to nV
   puv(i,j)=array(domainU(0)+i*dU,domainV(0)+j*dV)
   pTempXYZ=Rhino.EvaluateSurface (srf, puv(i,j))
   pNormal=rhino.surfaceNormal(srf,puv(i,j))
   dAlfa=pTempXYZ(0)*tan(alfa*rhino.pi/180)
   pTempXYZ1=shiftPt(pTempXYZ,array(0,0,0),pNormal,0.5*dAlfa*(-1)^j*abs(1-(-1)^i))
   p(i*(nV+1)+j)=pTempXYZ1
  next
next
rhino.deleteobject srf
dim srfA,srfB
srfA=rhino.AddSrfPtGrid(array(nU+1,nV+1), p,array(1,2))
for i=0 to ubound(p)
  p(i)(1)=-p(i)(1)
next
srfB=rhino.AddSrfPtGrid(array(nU+1,nV+1), p,array(1,2))
srfB=rhino.RotateObject(srfB, array(0,0,0),alfa*2,array(0,0,1))
for i=1 to n/4
  rhino.RotateObjects array(srfA,srfB), array(0,0,0),i*(alfa*4),array(0,0,1),true
next
end function

'distance of 2 pts
function shiftPt(p,p0,p1,d)
dim pp : pp=Array(0,0,0)
dim dd : dd=sqr((p1(0)-p0(0))^2+(p1(1)-p0(1))^2+(p1(2)-p0(2))^2)
pp(0)=(d/dd)*(p1(0)-p0(0))+p(0)
pp(1)=(d/dd)*(p1(1)-p0(1))+p(1)
pp(2)=(d/dd)*(p1(2)-p0(2))+p(2)
shiftPt=pp
end function
作者: njyqqq    时间: 2010-6-18 13:56
楼主活雷锋啊,怎么着也的给楼主个管理员当把,{:3_51:}
作者: skywoolf    时间: 2010-6-18 16:23
犀利的楼主~感谢分享!{:3_57:}
作者: stratagem    时间: 2010-6-18 17:43
佩服楼主,为什么我看到代码之类的东西就头晕
作者: 夜神    时间: 2010-6-18 18:11
还是个习惯问题,我看电池图也头晕,呵呵!
作者: RRTYY    时间: 2010-6-18 19:12
看不懂{:3_54:}
作者: panhao1    时间: 2010-6-18 19:14
5# 夜神

已经半年没写rs了、、、
现在都看不懂了
作者: 城市边缘工厂    时间: 2010-6-18 20:43
前来支持一下
作者: 990628    时间: 2010-6-18 21:57
我看见代码头疼....
作者: marcowoo    时间: 2010-6-18 21:59
感谢分享!学习~
作者: 董羽天    时间: 2010-6-18 22:54
O(∩_∩)O哈哈~学习了
作者: claudemit    时间: 2010-6-18 23:32
学习下,谢谢lz
多读高人的代码理解着看书
作者: tony_tsang    时间: 2010-6-19 00:07
尴尬。。我也没看懂。。。这些数都怎么来的。。。
作者: architc    时间: 2010-6-19 00:46
坦白地承认,代码什么的最讨厌了。。。。

gh还能瞎琢磨一下,这rs确实让人觉得别说入门了,连找到门在哪里都很困难。

帮犀利的楼主顶一下。
作者: 麓山小农    时间: 2010-6-19 12:30
好多字母数字,啥东东?
作者: Line    时间: 2010-6-19 13:48
感谢楼主的分享。
问楼主个问题,想将代码掌握熟练,是否需要数学思维很强大?
对于我这样数学一向不擅长的同志学代码要注意些什么呢,谢谢。
作者: 夜神    时间: 2010-6-19 23:07
感谢楼主的分享。
问楼主个问题,想将代码掌握熟练,是否需要数学思维很强大?
对于我这样数学一向不擅长的同志学代码要注意些什么呢,谢谢。
Line 发表于 2010-6-19 13:48

其实大部分rs工作有高中数学能力就够了。代码写多了自然就熟悉了。
别人的代码看懂后一定要学着改,改成自己想要的东西,这样才算真懂了。
比如,把这个灯笼改成方的、改成葫芦形,或者把正弦波的形状改成方波或锯齿波(改成锯齿波只需要动一个字符,呵呵)……

很多高手并不是很愿意发代码,所以遇到代码一定要把里面的能量全部榨干变成自己的东西,不要玩两下不新鲜了就放一边去了。
作者: tjhzxc    时间: 2010-6-20 00:20
嗨,玩过processing看犀牛的看不懂啊
作者: qiqiyunyan1986    时间: 2010-6-29 18:56
好玩,挺好用
作者: 3972602    时间: 2010-7-10 10:47
不错不错 O(∩_∩)O谢谢
作者: 甜蜜的猪头肉    时间: 2010-8-3 10:36
许久没学。。。感觉压力很大啊。工作以后貌似用的更少的说。。
作者: 顾顾    时间: 2010-10-14 19:54
非常感谢 就会看这个
作者: ccocean    时间: 2010-11-17 22:00
为成为楼主一样的人努力研究代码。。。。。非常感谢
作者: Native_Design    时间: 2010-11-21 23:18
我一定要顶楼住。。。这么犀利的楼住
作者: huangchang0528    时间: 2010-12-11 22:56
挺有意思~~~~~~~
作者: 最牛的粽子    时间: 2010-12-15 23:18
很不错啊。。。学习学习
作者: ou312382395    时间: 2011-3-1 21:17
听到楼主的解释,又学到了~~
作者: nauygnod    时间: 2011-3-1 22:29
xiexeifensgxoang
作者: 我最爱飙车    时间: 2011-4-2 10:29
好厉害~~~~~~~~~~~~~~~~
作者: ememery    时间: 2011-4-2 10:47
谢谢~~~!!!楼主大好人~
作者: ememery    时间: 2011-4-2 10:53
哎。GH里的VB.net还没学好,RS还是有些看不懂。
作者: xigua_007    时间: 2011-4-2 10:58
想看想看想看想看想看想看
作者: wawa    时间: 2011-4-28 16:36
very good!!!!!!
作者: 时间敲冰    时间: 2011-5-22 22:06
顶楼主啊,厉害,希望多多交流。最近在学processing,虽然看不懂vb的代码,但是对于编程建模很感兴趣,lz要多发这类的帖子啊
作者: guigui-xin    时间: 2011-6-11 18:11
其实,我是想来灌水的
作者: 禁忌    时间: 2011-6-12 16:43
真强大。。。
作者: Tony    时间: 2011-7-8 23:29
顶夜神老师
作者: charish    时间: 2011-7-14 23:30
娘啊   头一次接触 看上去有点晕
作者: 曾美琪    时间: 2011-7-26 08:02
表示 现在还很无奈
作者: nsf    时间: 2011-8-17 17:08
从头学起,不知道头在哪里{:3_65:}
作者: gemma_zoro    时间: 2011-10-6 08:36
好大一个苹果!感谢楼主~
作者: rainfish    时间: 2011-10-9 16:09
很强大啊。。。。
作者: feizhu    时间: 2011-10-11 16:21
好东西 支持楼主~
作者: tingting87    时间: 2011-10-12 08:30
谢谢~受教了
作者: liyong    时间: 2011-10-28 21:32
谢谢分享   哈哈
作者: hying    时间: 2011-12-10 14:04
顶。。。!
作者: 鹰眼黑客    时间: 2012-2-10 23:53
楼主真是出手就是精品,这个形态复杂但是速度这么快。
作者: lulununu2010    时间: 2012-2-12 19:05
不错不错,呵呵,挺好的东东
作者: 江风渔火    时间: 2013-1-4 16:09
楼主威武,支持下
作者: 人子    时间: 2013-2-28 08:58
不错不错 O(∩_∩)O谢谢
作者: porridge1989    时间: 2013-3-26 19:17
顶起,楼主给力!
作者: ememery    时间: 2014-3-12 11:49
谢谢无私的楼主~~楼主好强大
作者: mysanaa    时间: 2014-8-4 21:53
哈哈哈  有意思  谢谢分享
作者: hiatus_hiatus    时间: 2014-8-10 08:43
好不错啊,没用过这个,感觉好强大
作者: 横穿马路    时间: 2016-7-8 10:30
谢谢分享,辛苦了。
作者: DONNA    时间: 2016-7-10 23:52
犀利的楼主~感谢分享
作者: guohust    时间: 2016-11-29 15:47
佩服楼主,这四我们努力的方向
作者: laizheli    时间: 2018-6-4 23:52
liangxintiezi




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