标签: grasshopper

  • 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″]

  • Grasshopper系列教程-平面的创建和操作

    Grasshopper系列教程-平面的创建和操作

    今天我们来讲讲grasshopper中平面的操作创建已修改的相关运算器。

    平面在Grasshopper的作用主要是用来定位。

    我们在绘制直线的时候,时常要定义直线的方向,那么我们就要用平面来定位了。或者在创建一个点的时候,要对这个点进行移动,我们必须定义这个点的运动的所在平面,这时就必须为这个点创建一个平面。

    我们在对物体进行缩放或者对曲线偏移的时候,也是要给这些物体或者曲线赋予一个操作的平面的。

    好的,那我们就开始今天的grasshopper教程吧。

    计算机生成了可选文字: Deconstruct到,0 0.3dSC00m

    Deconstruct plane:分解平面。这个运算器是把平面分解成点和xyz三个方向。

    分解平面之后,我们可以获取这个平面它们的xyz三个轴向方向。获取方向之后,我们可以通过这些方向来操作这个平面上的一些点。

    其他三个运算器都是创造平面。

    分别是创建xy平面,xz平面,yz平面。

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

    计算机生成了可选文字: e囗t www.3dsc g.C0m

    Construct Plane :创建平面。在xy两个端口输入两个方向,这样就可以创建出一个平面了。

    但是要注意,xy两个端口输入的不一定是标准的x轴或者y轴。只要输入两个不完全重合的方向就可以了。O端口是输入这个平面的起点。

    计算机生成了可选文字: 0二dXY .3dsc 嘰C00〕

    Line + Line :两个直线生成平面。这个运算器的用法和上个运算器基本上是一致的。而且在grasshopper中直线段和方向其实并没有很大的差别。我们也可以这么认为,直线其实在某种意义上是等同于方向(向量)的。

    计算机生成了可选文字: 《0.00,0.00,飞.00} 0 .3dsc 嘰C00〕

    Line +Pt :一条直线和一个点确定一个平面。

    Plane 3Pt :3点生成一个平面。

    Plane Fit :空间点拟合成一个平面。或许空间上的一些点,通过计算之后拟合成一个平面。这些点不一定完全在一个平面上的。

    Plane Normal:一个点和一个法向方向形成一个平面。

    Plane 0ffset:偏移平面。

    Plane Origin:基础平面对应到另外一个平面上。

    [elementor-template id=”7418″]

  • Grasshopper系列教程-网格整列点生成

    Grasshopper系列教程-网格整列点生成

    今天我们来讲解Grasshopper网格点阵列的内容。

    agond www.3dsc .com

    这5个运算器输出的是常见的多边形矩形阵列,除了输出多边形阵列之外,还输出多边形阵列的点。

    Hexagonal:蜂巢六边形网格阵列。

    Radial:环形矩阵的阵列。

    Rectangular:矩形矩阵阵列。

    Square:正四边形阵列。

    Triangular:三角形排列的阵列。

    L'.JWW. 3dscg.com

    这几个运算器都有些共同的参数设置,一般有以下几个。

    P:阵列的起点。

    Sx:阵列中单位格子的边长大小,这里指的是x轴的大小。

    Sy:阵列中单位格子的边长大小,这里指的是y轴的大小。

    Ex:X方向上格子的数量。

    Ey:Y方向上格子的数量。

    输出端口的参数。

    输出端口的参数。

    C端口输出网格多边形

    P端口输出网格多边形交叉点

    计算机生成了可选文字: opul02b Populate3D 卩0》10G•••trY 、N.3dSC.com

    Populate 2D:随机散步2d点

    Populate 3D:随机散步3d点

    Populate Geometry:几何体内随机云点。

    www dscg . com

    这几个运算器都是用来生成离散的点,它们也有几个共同的参数。

    R(G):生成离散点的有效范围。3d离散点是输入一个正方体。随机离散云点输入一个3d几何图形。

    N:输入生成离散点的数量。

    S:输入离散点随机因子。每输入一个不同的整数会输出一个新的离散点分布。

    P:清理P点范围内的点,这个可能不太好理解,那么请看下图的算法演示

    在上图中,我们曲线是输入了一个圆圈,然后把圆圈进行78份的等分点,把这些点输入p端口中,我们可以看到下面有一个奇妙的现象出现。

    效果图如下,在下图中随机点,中间出现一个空缺的圆圈,这个空缺就是圆圈的等分点所消除的。

    计算机生成了可选文字: 、00000〕

    [elementor-template id=”7418″]

  • Grasshopper-磁场力运算器的运用

    Grasshopper-磁场力运算器的运用

    今天我们来讲讲Grasshopper的电磁场的运用。

    使用磁场,我们可以创建出一些运动的曲线,比如直线运动,圆周运动或者扩散运动这类的运动状态。如果使用常规的做法,我们会非常的困难,但是用磁场的话就轻而易举了。

    今天的课程只是简单的列举一下他们的用法,同学们可以用今天所学到的内容自己去做一些实验。

    好。

    好了,我们来开始今天的Grasshopper课程吧。

    计算机生成了可选文字: www.3dscg.com

    Line Charge:条形磁场。

    这个运算器通过实取直线产生直线两侧的条形磁场。

    计算机生成了可选文字: www.3dscg.com

    在下图中我们看到直线的右侧的点都在做远离直线一侧的方向运动,而且点距离线的位置远近,力的大小也会有所不同。

    计算机生成了可选文字: stg .cam

    Point Charge:点电荷磁场。

    这个运算器用点来控制磁场力的方向,它有4个参数,C参数用来控制磁场力的大小,如果c的值是正值,它就是排斥力,如果是负值就是吸引力,低值用于控制它的衰减的力度,直值越大,衰减越小,如果衰减值等于0,则这个电荷的力没有衰减。

    计算机生成了可选文字: 36.10 0 0 1.980 www.3dscg.com

    在下图中我们可以看到,带箭头的点都受中心电荷的影响,往四周移动。

    计算机生成了可选文字: www. sc g.cam

    Spin Force:自转力

    这个运算器会给周围的点产生圆周运动的力。

    S值的大小是调节力的强度。

    R值的大小是调节磁场的半径。

    D值是调整磁场的衰减程度。

    计算机生成了可选文字: -3610 0 0 2826

    在下图中我们可以看到中心点周围的点,因为受到自转力的影响,产生了旋转偏转的运动。

    计算机生成了可选文字: .3dscg .cam

    Vector Force:矢量力,让点往一个方向运动的力。

    计算机生成了可选文字: .3dsc .cor

    在下图中我们可以看到所有的点都跟随直线的运动。

    计算机生成了可选文字: stg .cam

    计算机生成了可选文字: Yield FieldLl www3dsc℃om

    Break Field:分解磁场力,使合并的磁场力分解。

    Merge Fields:合并磁场力

    Evaluate Field:评估磁场,这个运算器用于计算磁场的方向。

    Field Line:创建磁场线。使磁场成为一种可见的形式,表现在画面上。这个运算器是我们使用磁场来做设计的最终目的。使用这个运算器,大家一定要注意保存文件,因为把磁场线创建出来,表现在画面中,往往会伴随大量的图形计算,如果数据控制不好的话,有可能会发生文件崩溃的情况。

    计算机生成了可选文字: 囗 韧 Directionlay Perpendicular盯1“ Scalar蘄I T色0or1生Y www.3dscg.c_Q_m_

    Direction Display:使用彩色图像来显示方向。

    Perpendicular Display:使用彩色图像来显示垂直方向。

    Scalar Display:使用彩色图像来显示标量。

    Tensor Display:使用彩色头像来显示张量。

    [elementor-template id=”7418″]

  • Grasshopper系列教程-反转矩阵,数据编组,数据合并运算器

    Grasshopper系列教程-反转矩阵,数据编组,数据合并运算器

    我们今天继续来学习Grasshoper的课程,这次学习是几个简单而且常用的运算器,他们是用于控制分组的合并与分解的。

    计算机生成了可选文字: 3 Flip Explode Tree www.3ds c .corn

    Entwine:把数据编入既定的分组内。

    在下图中我把第1分组的数据输入00的编号里面第2分组的输入01的编号里面。02编号的分组没有输入数据。

    r端口输出编号分组的树形数据,要注意,因为02端口没有输入数据,所以02分组了是空的。

    Flatten 2 3dscg_ 2 www.3dscg.com

    Explode Tree:分解树形数据。

    这个运算器比较简单啊,大家看一下下面的运算就可以了。

    S 3dgcg_con wvvw .3dsc .corn

    Flip Matrix:反转矩阵数据

    这个运算器在我们平时的grasshopper的设计里面都非常的常用,我们经常会把它用来翻转点阵的纵向和横向的排列。

    对于翻转点矩阵的排列的,在我以往的文章里面都有所提到啊,大家可以在我的网站里面搜索相关的内容。我这里就不展开讨论了,如果大家有什么疑问的话,可以在下面的语言窗口评论,这里只是简单的介绍翻转举证的它的原理跟用法。

    在下图中我们可以看到00分组里面的数据是AA,bb和零课刻学堂,01分组的数据是cc,dd和3dscg.com。

    这一个分组数据输入翻转举证之后,他被翻转为三个分组,每个分组里面有两个数据。

    这个翻转矩阵的运算器的原理就是说把每一个分组的编号按顺序提取,之后把它们组合成一个新的树形数据。

    比如00分组和01分组里面他们的序号0的数据分别是AA和cc,提取了这两组数据之后,再组成一个新的组。

    冫 学 堂 01 }

    Merge:合并分组数据。

    这个运算器的使用方法也非常简单,就是把把数据输入到相应的窗口,最终输出的是一个拍平的数据。

    S coz .3dsc _corr

    Streu P utar Stream Gate www.3dsc acorn

    Stream Filter:分组数据过滤器。

    在下图中我们可以看到g端口输入1,输出端口输出的数据就是1端口里面的数据。

    wwvu 3dsc .com

    Stream Gate:这个运算器的使用方法不明,这里也就不再展开讨论了,大家如果对这个运算器有什么看法的话,可以在下面的评论区留言。

    4 3dgcg_con 4 3dgCg.COm

    [elementor-template id=”7418″]

  • Gasshopper-系列课程-数据结构运算2

    Gasshopper-系列课程-数据结构运算2

    今天我们继续去讲解grasshopper数据结构的内容。

    www.3dscg.com

    Match Tree:匹配树形数据的路径,这个运算器跟我们之前讲过的那个匹配的运算器是一样的。

    在g端口输入要匹配的树形数据。

    езеО • мим зэкрие.щ ЧУМ езеО —

    Shift Patchs:偏移树形数据路径。这个运算器的作用是把树形数据的路径进行移动,移动之后把位数相同的合并起来。

    在下图中我们观察红框内的数据路径,偏移之前红框内路径的前三位是一样的,偏移之后把这些一样的路径合并成一个,这样它路径的位数也相应的减少了一位。

    brarches 16 ко;с;'}

    Splite Tree:分割出其中一段树形数据。这个运算器的作用就是用来提取某一段路径的数据。

    在下图的m端口,我们输入了两个数据的路径,输出的p端口输出这两个路径的数据。

    这里要注意的是,路径的写法一定要符合规则。规则就是用花括号包住编号,路径编号的位数用分号隔开,而且是最后一位不能有分号。

    | 0 ; 0 ; 0 0 0 ; 0 ; 0

    Path Mapper:路径映射器。这个运算允许我们任意的改变数据的结构。如果灵活应用的话,我们将会更加方便的更改数据结构。这个运上去的基础功能和我们之前学过的一些改变数据结构的运算器的作用类似,也有一些重复的类型。

    点击右键设置Mapper的类型

    Mapping Editor... Create Null Mapping Create Flatten Mapping Create Graft Mapping Create Trim Mapping Create Reverse Mapping Create Renumber Mapping Enabled Help...

    Create Null Mapping:创建一个普通类型。

    Create Flatten Mapping:创建一个拍平数据的映射类型。

    Create Graft Mapping:创建一个分组数据的映射类型。

    Create Trim Mapping:创建一个偏移路径的映射类型

    Create Reverse Mapping:创建一个反转编号的数据类型。

    Create Renumber Mapping:创建一个精简路径编号的数据类型。

    这个运算也有它的高级应用的方式,然后这部分内容我们在后面的是课程再进行展开讲解。

    [elementor-template id=”7418″]

  • Grasshopper系列教程-匹配数据结构

    Grasshopper系列教程-匹配数据结构

    Data With 8 branches 曲 面 等 分 点 数 据 结 构 Data With 8 branc hes 曲 面 分 割 0 2 最 终 输 出 的 2 数 据 结 构 曲 面 等 分 点 www.3dscg.com 零 刻 学 堂 Data With 8 branc N 己 5 囝 参 照 用 的 数 据 结 构 . 3dsc 嘰 C 0 0 〕

    接着我们上节Grasshopper课遗留下来的一个问题。

    我们怎么来理解这么一个运算器?

    这里我再重新重复一下这个运算器的作用:这个运算器的作用就是用来匹配一个作为参考的列表的路径。

    比如说原来的路径是两个0,而我们要把它的路径改为三个0。这样我们除了可以使用之前学过的方法来修改路径之外,我们也可以用一个现成的列表作为参考,然后把这个列表的路径直接搬运过来使用。

    在上图中我标记了三个标注。

    他们分别是:

    1. 原来的数据结构。
    2. 作为参照匹配用的数据结构。
    3. 最终输出的数据结构。

    从上图我们得知2和3的数据结构是完全一样的。通过这么一个简单的操作,我们就能够任意改变数据的结构。

    那么为什么我们要去改变数据的结构呢?

    以我个人的总结,我认为有以下几点原因要去改变数据结构的。

    1. 原始的数据结构过于复杂,过于复杂的数据结构是不利于我们操作数据列表的。
    2. 数据结构精简之后,便于我们做数据的匹配。

    改变匹配的数据结构,我们要注意以下的几个问题。

    1. 数据结构的分组必须一样。
    2. 数据结构每个分组里面的数据数量也必须一样

    好了,以上就是我对这个运算器的理解,

    如果大家有什么问题的话,可以在下方的留言窗口下评论。

    [elementor-template id=”7418″]