分享

因为可视化的Grasshopper,Rhino成了物理教学平台

 新用户5228KeDY 2024-07-05 发布于北京

Grasshopper(草蜢)是运行在Rhino(犀牛)上的可视化编程语言。据说Rhino以前没有这个模块,GH是被当作插件的,但是后来在R6/7/8里面自动集成了它,于是NURBS武功最强的Rhino拥有了数据化设计的超强参数化能力。因为是数据化的门派武功,这样Rhino就在可视化的前提下能基于算法编写程序了,就能设计自动计算的可视化方案了;不但能解决Rhino自己擅长的建筑装饰、工业设计、珠宝创意等领域,也能解决物理里面的事情了,如果结合Kangaroo(袋鼠)Kangaroo2,动力学的问题也不在话下。

相比于文本式的编程,Blocks块相当方便使用和学习。

这里尝试的第一个例子,是平行四边形。它不象几何画板,它是空间的,随时可变、代数几何同时可以看到。先是Panel里面输入两个向量{10,10,10}{20,10,10}{10,10,10}{10,30,20},然后画出来矢量,向量代数是Grasshopper里内建的计算,得到合矢量,再用Lines补出来平行四边形的另两条标量线段。NumberSlide用来放缩向量长度,即数乘。

为了清楚表达出这个平形四边形是空间截取的某一平面上的,我们特别画了一个长方体,并用半透明来表现隐显关系。

第二个例子是用Expression表达式来自动生成一个阻尼振动。Expression有表达式计算的能力,并且支持类似python里的Format()函数。例子中的表达式是胡写的,100*sin(x)*Exp(-x/31.4),然后这个数值作为y坐标送给Construct Point,并默认x=0z=0构造Point,再使用Dot Display显示为红色、Size=9

——Grasshopper一直在发展,它其实已经很多年的历史了,但是似乎太过小心,现在Ver 2才刚刚开始,Rhino8里面仍然是Ver 1,所以相邻的两个Rhino版本里面的GrassHopper原生的Component都不完全相同,且中文资源很少,全靠摸索。Rhino 8.7GH里面的Expression需要自己改改varity xvarity y之后,换成xy之后才能当成形参来使用,否则会报错,不知道别的版本是不是也这样,或者就是这样用的。其实GH里面套用传统编程语言的概念来理解的话,完全是OOP的。

动态表达的样子。当然也可以Animate…输出成图片序列,生成视频。现在是Gif序列。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多