分类: grasshopper

专业解析grasshopper技术

  • grasshopper系列教程-判断点是否在曲线内

    grasshopper系列教程-判断点是否在曲线内

    我们今天来讲解grasshopper里判断点在曲线的相关运算器,这类运算器的总共只有两个,一个是判断在一条线内的,一个是判断在多条线内的,他们的作用都是判断点是否在曲线内,然后通过后续的手段来进行删除或者选择,在做参数化设计的时候,也是一个非常必要的手段,好的,那我们就开始今天的课程吧。

    Point In Curve:判断点是否在一条线内

    这个运算器的作用就是判断点集合是不是在这个曲线内,如果是在曲线内的话端口会输出2,如果再取向外的话端口会输出0,如果点在曲线上的话端口会输出1

    如下图所示

    Point In Curve:判断点是否在多条线内

    上一个运算器的负数版本,他们两者在功能上是一样的,只是说在输出的值方面上会有点差别。

    在下周的实例当中我们可以看到第二个端口输出的值多了个-1,这个-1就是表示点在曲线的外面,而零和一就是表示在这个曲线内的点,只不过编号零和一表示在不同的曲线内

    从下图当中我们可以验证第一条曲线内有1个点那上面的数据就只有1个0,第2条曲线有3个点所以上面的数字呢就有3个1

    那这个运算器应当怎么使用呢?

    我们来看一下下图的算法

    在下图当中我们只要知道那些数字是否等于2,然后用一个排除的运算器来排除掉非2的就可以了

    [elementor-template id=”7418″]

  • grasshopper系列教程-曲线的长度和区间

    grasshopper系列教程-曲线的长度和区间

    我们这节课来讲grasshopper,曲线的长度和曲线的区间的应用。

    曲线的长度和取向区间的在我们做参数化设计的时候是非常必要的。因为我们在做设计的时候呢,经常要计算出一条曲线的长度。哼!之后呢,再给曲线长度做一些参数上的变化。

    本节课的重点呢就是介绍曲线的长度和区间分别是怎么获取的。

    cw,e Domain  Length  Length  point In Curve  Evaluate Length  Length Domain  Segnent Lengths  point in Curv  www.3dscg.com

    Curye domain:曲线的区间

    这个运算器就是计算曲线的区间。

    曲线的区间一般是从零开始计算起的。

    但是大家这里要注意的是曲线的区间不等于曲线的长度。

    区间是指曲线在某一个数值范围内,它是一个范围值,而不是一个长度值。

    所以大家在使用草蜢做计算的时候,要注意一下这个参数的意义。

    IL8€_€37L8  www.3dscg.com

    Evaluate Length:评估曲线上某一点的位置点。

    所谓评估取向上某一个位置点呢,就是说:给曲线定义一个值。这个值,但必须是在零到一之间的任意数值。那么这个运算器就会输出这个数值在曲线上的位置点。

    就如下图所示,我们看到L端口输入我是0.54这个数字,右边的P端口会输出一个点,那么这个点会在平面图上我们是可以看到的。

    054 0

    Length:计算并输出曲线的长度。

    这个就是真正的输出曲线的长度了。

    这个应该没什么好说的。

    我们平时在做参数化设计的时候都会用到的。

    Length Domain:计算并输出曲线的区间。

    这个电池呢,可以在D端口输入一个区间。那么在L端口呢就输出这个区间的长度。

    这里要注意哦!右边的端口输出还是长度不是区间。

    0 28_14SS22  www.3dscg.com

    Length Parameter:在曲线中指定一个点,并计算出这个点两侧的曲线段的长度。

    这个电池的作用是在P端口输入一个区间值。然后右侧的端口呢,它是输出这个区间值两侧的曲线的长度。

    所以大家要注意这个运算器使用的时候啊!左边是输入区间值,右边输出是长度值。

    我们也可以理解为这个运算器就是用于区间值和长度之间的转换。

    那我们在实际应用中呢,就是用于截断曲线的

    就如下面的图片中我们可以看到,假如我们这条曲线是1000的区间,我们给他输入一个493的值,那么就可以得到493前面那一段曲线的长度和493后面那一段的长度了。

    0 283_477439  o €04_228227  www.3dscg.com

    Segment lengths:计算并输出指定区间段的曲线的长度。

    这个电池的作用其实就是输出区间值和长度值。

    计算机生成了可选文字: 5》 Ld 0887.7OS 00《飞86.E37《@ 00TO1186·E371E www.3dsc .C0m

    [elementor-template id=”7418″]

  • grasshopper系列教程文章-分析曲线

    grasshopper系列教程文章-分析曲线

    image.png

    这里一大类的运算器的功能都是在计算曲线上的点,

    输出的数据大都是点、平面这类数据

    Curvature: 计算曲线在指定点的曲率参数。

    Curve frame:获取曲线在指定点的曲率框架(平面)

    Derivatives:计算曲线在指定点的导数

    Evaluate Curve:获取沿曲线水平对齐的框架

    Horizontal frame: 求解垂直(零扭曲)框架

    Perp Frame:求和曲线方向垂直的平面

    Point on curve:找到曲线上的一个点

    Torsion:找到曲线上的一个点

    image.png

    [elementor-template id=”7418″]
  • Grasshopper系列教程-分析曲线的相关运算器(可用于曲线干扰)

    Grasshopper系列教程-分析曲线的相关运算器(可用于曲线干扰)

    我们今天接着学习Grasshopper的分析曲线的相关运算器,这部分大致功能就是用于判断曲线的和其他类型的相互位置关系的。比如点到曲线的距离,判断曲线是否闭合,判断几个物体到曲线的最近距离,计算两条曲线的最近点等等。

    这些功能为我们后续做参数化设计提供很多判断的依据。

    image.png

    Closed:判断曲线是否闭合

    在下周中我们看到两条曲线,一条是闭合的,一个是不闭合的。

    www.  sc  g.cam

    把曲线输入到这个运算器中,false表示曲线是不闭合的,有开口的。ture表示曲线是闭合的,周期性的。

    不 闭 合 曲 线  闭 合 曲 线  0 F 彐 1  0 三 1 , 0

    Curve Closest Point:计算点到线的距离或计算点到线的投影点。

    在下图当中我们可以看到一个点和一条线。

    www.3dscg.cam

    通过这个运算器之后。

    P端口输出点到线的投影点。

    T端口输出点在线的位置值。

    D端口输出点到线的距离。

    这个运算器是我们在grasshopper中常常用于做曲线干扰的运算。

    曲线干扰的原理其实就是计算多个点到曲线的距离,通过距离的变化形成各种有趣的纹理。

    410.scs432, -  E7_3S42E4, C)  c 26.684733

    Curve Proximity: 计算两条线之间的最近点。

    在下图中我们看到两条曲线。

    中国计算最经典的运算器以后我们可以得到最近点a和b。

    D端口说出a点和b点的距离。

    _ 477233,  0 3_es3679

    Discontinuity:计算并输出曲线中不连续的点。

    在下图中我们看到一条多段线。它有两个端点和三个转折点。

    多段线经过这个运算器之后会输出5个不连续点。

    T端口输出点在线的位置值。

    计算机生成了可选文字: 《一33.二下7232 131.冫2E233.0} 《一1二.454s0e 273. 3110.28《7冫2 《:45.350s20

    Planar:判断曲线是否是平面曲线

    下图中我们绘制了一个矩形。

    www.  sc  @.com

    我们知道矩形它是一个平面图形,所以在p端口它输出ture。

    如果是空间曲线,P端口输出的是false

    ot-c_sı,  www.3dscg.com

    Curvature Graph: 曲线的梳子图。

    通过梳子图判断曲线的顺滑程度。

    D端口输入梳子图的段数

    S端口输入梳子图的大小

    100 ф  о 120  ,3dsc .согп

    Curve Nearest Object:计算并判断距离曲线最近的物体。

    在下图中我们准备了一条曲线和两个位置不同的点。

    www. dscg  .cam

    经过下图运算器计算之后,我们可以得到a点是距离曲线最近的点。

    计算机生成了可选文字: 气V.C00〕

    Curve Side: 判断物体是在曲线的左边还是右边

    在下图中我们准备了一条曲线,在曲线的下面绘制了一个点。

    www.  sc  @.com

    经过这个运算器计算之后,我们判断到这个点是在曲线的右边。

    Extremes:计算出曲线的最高点和最低点。

    在下图中我们准备了一条平面的曲线和曲线所在平面垂直的平面(就是下图中的那个点)。

    www.  sc  @.com

    经过运算器计算之后,我们得到曲线的最高点和最低点。

    .3dsc .cor-

    [elementor-template id=”7418″]

  • Grasshopper系列教程-曲线上点在获取

    Grasshopper系列教程-曲线上点在获取

    我们这节课来学习grasshopper曲线控制的内容。

    曲线控制也是grasshopper里面最重要的内容之一。

    Control Points Deconstruct Arc End Points Control Polygon Deconstuct Rectangle POI ygon Center •m•.w.3dscg.com

    Control Points:显示曲线的控制点。

    在下图的算法中p端口输出曲线的控制点。

    Control Polygon:输出曲线的控制点。

    0 sc

    Deconstruct Arc:分解弧线的各类参数。

    B端口输出弧形的圆心平面。

    R端口输出弧形的半径。

    A端口输出弧形的弧度区间。

    Deconstuct Rectangle:分解矩形的各项参数。

    B端口输出矩形的平面坐标。

    X和y端口输出矩形的长度区间。

    利用这个特性,我们可以利用它把空间上的矩形移动到原点上。

    End Points:获取曲线的起始点和终点。

    S端口是起点。

    E端口是终点。

    Polygon Center:输出多边形的中心点。

    [elementor-template id=”7418″]

  • Grasshopper的数据列表工具与传统编程【翻译】

    Grasshopper的数据列表工具与传统编程【翻译】

    列表编辑

    与编程环境相反,Grasshopper使用没有对象名称来定义对象,这在传统编程中会感到些许奇怪,但它是与传统的编程思维最根本的区别之一。在Grasshopper中,元素被放置在列表中。不同的数据列表在数据树结构中组织,其中分支的每个分支和数据内容具有索引号(index)。因此,在传统编程环境中访问对象是更成问题的,而Grasshopper有各种各样的工具来解决这个问题。这些工具支持编辑和选择列表的内容。这些技术的知识对于Grasshopper的有效利用是必不可少的。这些技能将在Wiki中得到解释。为了保持示例简单,使用带有数字的面板。这些数字可以代表很多不同的东西。例如:点、曲线或表面。

    列表项

    单输出列表项

    具有多个输出的列表项

    与减法结合使用的列表项

    列表项从列表中选择项或多个项。注意输入列表中的索引(值前面的数字)。指数从0开始,而不是在1。

    列表长度

    List length1.jpg

    列表长度组件返回列表中的项目数。在第二示例中,使用列表长度来获取列表中的最后一个项目,而不考虑值的数目。这使得这个定义参数化。请注意,您需要从列表长度减去1,因为索引从0开始!

    反向列表

    Reverse List1.jpg

    反向列表的目的是显而易见的。此组件还可用于通过反转列表并获得第一项(索引0)来获取列表的最后一项。

    偏移列表

    Shift List1.jpg

    Shift列表通过移位值移动列表中的项。一个肯定的(s)将项目在列表中移动,一个否定(s)向下移动。环绕(W)防止物品通过移动到另一端而从列表中“掉下来”。

    重排列表

    Sorting List1.jpg

    排序列表和子列表

    排序列表组件可以是一个非常强大的组件。它的默认功能是对列表(k)进行排序。除了输入之外,还有可能附加更多的列表(A,B,Enz)。这些列表将按照与第一个列表相同的顺序排序。次要列表的内容不必像第一个列表(k)那样是可排序的。第二个列表可以是几何、文本等。

    分割列表

    Split List1.jpg

    分割列表将列表拆分为两个单独的列表。第二个列表从索引(i)开始。

    子列表

    Sub List1.jpg

    使用子列表,您可以使用域选择列表的一部分。指定域之外的元素将从输出中删除。

    分组列表

    Partition List1.jpg

    分区列表是“拆分列表”和“子列表”组件的组合。输入(s)根据每个列表所包含的项的数量来设置拆分模式。这个模式将被重复,直到所有的项目被放置。
    [elementor-template id=”7418″]

  • Grasshopper系列教程-向量的操作方法

    Grasshopper系列教程-向量的操作方法

    今天我们来讲解grasshopper向量的操作。向量在学习和使用grasshopper的时候也是占有比较重要的地位的。

    vector  www.3dsc corn

    Deconstruct Vector:解构向量

    最终输出向量的xyz三个坐标。

    D D_32ssos  www.3dscg.com

     Vector XYZ:输入xyz三个坐标生成向量。

    04 so  s.oo o  www. dscg  .com

    www.3dsc .сого

    这几个是grasshopper默认的向量运算器。

    Unit Vector:向量单位化,不管多大的向量,只要输入这个运算器之后,它都会变成0~1之间的单位

    Unit X: 世界坐标的x方向。

    Unit Y:世界坐标的y方向。

    Unit Z:世界坐标的z方向。

    Cross Product  Dot product  Rotate  Vector 2? t  Vector Length  .3dsca.co

    Amplitude:给向量重新赋值。

    在修改向量大小的时候,通常会使用这样的一个计算器。

    在下图中a端口输入一个新的值,会改变向量的大小。

    Angle:计算两个向量之间的角度。

     A端口输出两个向量之间的夹角。

    R端口输出两个向量的补角。

    0 42_E140S6  C 3Eo  c 317.3sss44

    Cross Product:向量的叉乘

    向量的叉乘,即求同时垂直两个向量的向量,即c垂直于a,同时c垂直于b(a与c的夹角为90°,b与c的夹角为90°)

    在3D图像学中,叉乘的概念非常有用,可以通过两个向量的叉乘,生成第三个垂直于a,b的法向量,从而构建X、Y、Z坐标系。如下图所示:

    qxe-=  exq  qxe

    在二维空间中,叉乘还有另外一个几何意义就是:aXb等于由向量a和向量b构成的平行四边形的面积。

    www.3dscg.com

    Dot Product:计算向量点积(内积)

    向量的点乘,也叫向量的内积、数量积,对两个向量执行点乘运算,就是对这两个向量对应位一一相乘之后求和的操作,点乘的结果是一个标量。

    点乘的几何意义是可以用来表征或计算两个向量之间的夹角,以及在b向量在a向量方向上的投影

    Reverse:翻转向量的方向。

    Rotate:旋转向量

     X端口输入向量旋转的轴。

    www.3dscg.com

    Vector 2Pt: 根据两个已知点生成一个向量。

    Vector Length:输出出向量的长度。

    [elementor-template id=”7418″]

  • grasshopper系列-删除重复点-整理点-投影点操作

    grasshopper系列-删除重复点-整理点-投影点操作

    我们今天讲解grasshopper的课程,是关于点的操作的。这些操作包括计算点距离、删除点、投影点和整理点编号。这些操作模块在我们设计点云的时候是非常有用的。

    cull Sort Dupli Cates nong Cur pull point www.3dscg.com

    Closest Point:寻找点与里面距离基准点最近的点。

    算法看下图,基准点是一个点,点云是多个点。

    P端口输出的是点云的点,I端口输出该点在点云所在的位置,低端口输出该点和基准点的距离。

    Closest Points: 这个运算器是上一个运算器的复数版本。

    Cull Duplicates:删除重复点。

    这个运算器我们在grasshopper的设计中会经常会用到,当有些点重复出现了,但我们要把它删掉的时候,就会用到这个运算器。

    在下图的算法中,我们可以看到t值控制要删除点的距离容差值。本实例的容差值等于3.17,意思是当间距小于3.17的点会被融合成一个点,我们可以看到原来有22个点经过删除重复点之后只剩下17个点了。

    Point Groups: 按照设定距离给点分组,这个运算机会计算每个点之间的距离,把距离小于设定的距离的点分成一个组。

    Project Point:投影点到一个物体上。

    投影的物体可以是线或者面或者平面。

    投影之前要设定方向。

    Pull Point: 投影点到物体上。

    这和上个运算器功能上基本上一样的,稍微简化了操作,它不需要指定方向,就可以投影到物体上。

    Sort Along Curve:按照曲线的轨迹排列点的顺序。

    在下图中我们给出的点的序列号都是杂乱无章的。如果我们要用这些点来生成一条曲线,它必然产生一条混乱的曲线。

    我们用下面这个算法,那就可以把一些杂乱的点规整。

    C端口输入一条曲线,这条直线只要大致上穿过点云就可以了。

    那么在下图中我们看到这条曲线穿过点云之后,点也跟随曲线的方向进行了重新编号。

    Sort Points:重新整理点的编号。

    这个运算器不需要输入整理的曲线和方向就连自动整理点的编号。它是按照xyz三个坐标从小到大排列的。

    下图是整理点之后的效果。

    [elementor-template id=”7418″]

  • Grasshopper系列教程-空间点的操作(点的生成和分解)

    Grasshopper系列教程-空间点的操作(点的生成和分解)

    大家今天我们来讲Grasshopper点的操作。主要内容是关于点的构成与分解的各种方法。

    www.3dsc com

    Construct Point:建立空间点。

    Xyz三个坐标值,如果输入一个等差数列可以输出等分点。

    CyDeconstruct:分解点坐标。

    这个运算器可以把点分解成xyz三个坐标。

    Numbers to Points:输入数值生成点。

    Points to Nunbers:有点生成数值。

    这两个运算器和上面的运算器基本上是一样的。

    大家看一看下面的算法。

    3dsc 00

    Buyeentr i olar Stance www.3dsc „corn

    Barycentric:计算三个点的质心。

    在下图的算法中abc三个端口,分别速度三个点,P端口输出三角形的质心,Uvw三个端口分别控制质心的偏移方向。

    www.3dscg.com

    Distance:两点之间距离运算器。

    用于计算两个点之间的距离。

    www.3dscg.com

    Point Cylindrical:计算以已知点为圆心的圆周点。

    Pt端口输出以p点为圆心的圆周点。

    A端口是圆周点的角度。

    R端口是圆周点的半径。

    Point Oriented:通过UVW值生成相对坐标点

    5.430 .3dscq .c orn_

    Point Polara:通过输入圆周的数据生成点。

    P端口输入初始的原点。

    Xy值输入角度。

    Z值输入所在平面的法线方向的高度。

    D值输入圆周的半径。

    这里要注意xy值要转换degree的单位,也就是角度。

    0 371 www.3dscg.com

    To Polar:分解点的圆周数据。

    它是上一个运算器的相反操作。

    P端口输出角度值。

    LLEo

    [elementor-template id=”7418″]

  • grasshopper系列教程-平面的操作

    grasshopper系列教程-平面的操作

    今天我们来讲解Grasshopper操作平面的课程。

    Adjust plane Al i gn planes plane CI Rotate plan plane Flip plane plane Coordinates www.3dscg.com

    Adjust Plane:  矫正平面。

    让平面的方向等于输入的方向。

    www.3dscg.com

    Align Plane: 对齐平面。

    旋转平面的y轴方向与之输入的直线方向一致。

    这个运算器和上一个有个明显的区别就是,它不会旋转平面的空间方向。

    www„3dsc „сот

    Align Planes: 对齐平面。

    这是上一个对齐平面的复数形式。

    Flip Plane: 翻转平面。

    在Grasshopper中平面是有两个方向的,一个是正方向,一个是反方向,这有点类似于曲面的方向。

    Plane Closest Point:计算点到平面的最短距离。

    这个运算可以计算点到平面的投影距离,P点输出点到平面的投影点,Uv值输出点的uv坐标,d端口的值输出点到平面的距离。

    .3dsc „сот

    Plane Coordinates:计算点到平面的相对坐标。

    WWWL3dSCg.com

    Rotate Plane:旋转平面。

    [elementor-template id=”7418″]