分类: grasshopper

专业解析grasshopper技术

  • 如何在Grasshopper中获取随机的点

    如何在批量的获取曲线上的随机点呢??
    获取随机点的原理是给曲线输入t值,输出t值所在的点。如下图所示:

    关于t值:
    在 Grasshopper 的 Evaluate Curve(曲线求值)组件中,t 值是曲线参数化的一个重要概念。t 值可以看作是曲线上点的位置参数,它的取值范围通常是从 0 到 1。对于一条曲线,当 t = 0 时,表示曲线的起点;当 t = 1 时,表示曲线的终点。例如,对于一条简单的直线段,t 值从 0 逐渐增加到 1 的过程,就像是一个点从直线的起点沿着直线移动到终点。

    在上述当中曲线必须重新参数化后t值才能取值0~1,否则取值区间为曲线的长度。下图的C端口左边那个小图标即为曲线重参数化,打上这个标记后曲线的区间被定义为0~1之间。

    点的定位:通过指定不同的 t 值,可以在曲线上精确定位点。例如,在建筑设计中,如果曲线代表建筑的轮廓线,通过改变 t 值可以获取轮廓线上不同位置的点,用于确定建筑外立面装饰构件的安装位置等。

    在Grasshopper中以下这些运算器均可以获取t值

  • 如何用Grasshopper做贴合曲面的框架

    有个群友问怎么样才能做出贴合曲面的框架,而且这个框架还得做圆角的造型。

    先看看我给出的结果,我用Rhino大概搭建了个曲面,然后在曲面的顶视图绘制了一条做骨架的中轴定位线。

    上图中:1曲面,2骨架中轴线,3骨架框架,4框架上倒圆角。

    针对这样问题,解决的方法思路

    1. 1️⃣在犀牛中绘制一条曲线作为骨架的中轴定位线。
    2. 2️⃣用Grasshopper计算出这条中轴线的等分点的垂直平面(Perp Frames)。分解垂直平面,并且在垂直平面绘制直线,直线的方向为垂直平面的X轴向。
    3. 3️⃣挤出绘制的直线,随后和原始曲面做相交线(Brep|Brep)运算,这样就得到曲面上的曲线(这里用投影到曲面也是可以的),用放样的方法生成骨架的平面造型
    4. 4️⃣获取平面的三个边界组合成一段,然后给曲线倒圆角,但是这里要留意的是,倒圆角有可能失败,原因是相交得到的曲线点分布不平均,所以这时我给了它做了重建曲线(Rebuild Curve)的运算,这样就保证倒圆角顺利完成。
    5. 5️⃣最后做曲线和曲面的偏移生成实体框架。

    Grasshopper算法的图解,下面的数字标记对应上文的文字解析。

  • 在Grasshopper中如何生成点

    好多人在使用Grasshopper的时候都不太清楚怎么创建点的数据,今天我就罗列一下几种常用的情况吧。

    1. 1️⃣拾取犀牛上的已知点。
    2. 2️⃣输入点坐标
    3. 3️⃣等分曲线或者曲面
    4. 4️⃣分解曲线、曲面或者网格
    5. 5️⃣用点阵运算器生成规则或不规则点阵
    6. 6️⃣计算物体之间的交点

    [elementor-template id=”23108″]

     

    1️⃣拾取犀牛上的已知点。

    这个方法就很简单的,点都是Rhino上绘制的,只要用Point的右键菜单Set one(Multiple)Point(Points)拾取一个或者多个就行了。

    2️⃣输入点坐标

    输入坐标点一般用Construct Point这个运算器。

    在运算器的X/Y/Z三个坐标值输入一个或者多个数值,便可以生成点

    3️⃣等分曲线或者曲面

    用Divide Curve和Divide Surface等分曲线或曲面后会得到很多点,这些点的间距大都沿着曲线和曲面排列的。

    等分曲线的运算器查阅这篇文章:5.2 Division #1 等分曲线 – 零刻学堂 (3dscg.com)

    4️⃣分解曲线、曲面或者网格

    分解曲线或曲面获取点也是经常使用方法之一,这个方法的好处是可以在原有的物体的基础上获得点数据,而且这些点和原本的物体还存在着位置关系。

    分界点用到工具一般是:Deconstruct Brep,End Points,Area,Point On Curve,End Points,End Points 等等的运算器

    5️⃣用点阵运算器生成规则或不规则点阵

    Grasshopper内置多种点阵运算器用于快速生成点

    详细的查阅这篇文章:4.2 Grid #1 矩阵网格 – 零刻学堂 (3dscg.com)

    6️⃣计算物体之间的交点

    当我们想要的点是从物体之间的交集得到的时候,就要计算物体的相交关系。

    相交点获取方式可以由这几种方式获得:求线和线的交点,求线和曲面的交点,求线和平面的交点、求线和体块的交点。

  • 如何用Grasshopper做螺旋上升的点阵列

    有个群友问这么把点布置在螺旋上升的曲面上的问题。

    针对这样问题,解决的办法有两个

    1. 用犀牛做螺旋上升的曲面,然后在曲面上布置点,点可以随机的也可以是规则的。
    2. 用Grasshopper算法计算出随机点,这个方法必须懂Grasshopper的算法思维,否则不太容易实现。

    这位群友不太懂Grasshopper,我这里给出是思路是用rhino来做曲面,然后用Grasshopper布置随机点,用Grasshopper布置随机点只要用到一个简单运算器就可以了,并不需要什么高深的算法思维。

    双螺旋上升的犀牛曲面做法也有很多种,我这次提供一种思路,方法上也比较容易实现。

    步骤:

    1. 画两条等高的螺旋线Helix
    2. 两条螺旋线放样Loft成曲面
    3. 把曲面展开(CreateUV)生成UV矩形
    4. 在UV矩形内绘制一个多边形
    5. 把UV矩形和多边形拉回(ApplyCrv)到放样的曲面上
    6. 用拉回的曲线去修剪曲面,这样就得到了螺旋上升的曲面了。

    有了螺旋上升的曲面,再用Grasshopper布置点是轻而易举的事情,用Populate Geometry 运算器就可以布置随机的点阵列了,如果要布置规则排列的点阵列,可以用Divide Surface

  • 如何正确的用Grasshopper切割或者分割曲面

    这群友在群里的一个问题了,他问Grasshopper切割开洞的曲面的,出现了空洞位置又被补回去了,要求助怎么解决问题。

    他是用isotrim来切割曲面,用这个运算器没有问题,问题就在于没有后续操作,应为isotrim这个运算器只会按照曲面的原始uv方向来切割,当遇到曲面中间有被修剪的部分,那么它会让曲面回到初始状态,这个状态在Rhino当中我们叫做取消修剪(untrim)的状态。

    要解决这个问题,我们只要给这个曲面做进一步的修剪并筛选要的曲面就可以了。

    方法是这样的:

    用isotrim之后的曲面和原始曲面做相交运算(Brep|Brep),这样就可以得到相交线,再用相交线去分割原始曲面,这样的话原始曲面就会被切割零碎的曲面了,但是这里要注意的是切割后的曲面会出现很多不要的重合面,我们这个案例用曲面面积大小来判断,只保留面积小于30的的曲面,这些曲面就是我们要的,筛选工具选用最为常用的Cull Pattern。

    以下是本案例的算法:

  • Grasshopper-Tree运算器常见用法上课笔记之一

    Grasshopper-Tree运算器常见用法上课笔记之一

    Pasted image 20220924151738
    Clean Tree:清理数据,清理空、无效数据、无效的分支。

    • N端口清理空数据,默认Ture。
    • X端口清理无效数据,默认True。
    • E端口清理无效的分支。默认False。
    • T端口输入数据列表。

    Flatten Tree:拍平数据。

    Graft Tree:分组数据。

    Prune Tree:修剪树形数据,删除限定个数的分支。
    Pasted image 20220924152618

    • T端口输入数据列表。
    • N0端口输入分支个数的下限值。
    • N1端口输入分支个数的上限值。

    Simplify Tree:简化列表路径,删除多余路径值。

    Tree Statistics:输出树形数据的属性。
    Pasted image 20220924153147

    • P端口输出路径的列表。
    • L端口输出每个路径下列表数据个数。
    • C端口输出路径的个数。

    Trim Tree:修剪树形数据。
    Pasted image 20220924154335

    • D端口输入一个整数,D值表示清理的路径的层数,0维持树形路径的现状,输入1清理掉路径最右边的一个路径值,输入2清理掉路径最右边的两个路径值,以此类推,直到无路径值可以清理。

    Unflatten Tree:在不拍平数据的情况下,把数据(Items)移动到目标分支内。
    Pasted image 20220924160907

    • G端口输入目标分支路径。

    Entwine:收集数据到指定的路径下。
    Pasted image 20220924170057
    放大图标可以增加路径编号。

    Explode Tree:炸开树形数据,从树形数据分离所有分支到单个列表。
    Pasted image 20220924170634

    Flip Matrix:反转矩阵.
    Pasted image 20220924171526
    Pasted image 20220924171853

    Merge:合并数据。合并同一个路径分支的数据。
    Pasted image 20220924172424
    放大图标可增加导入的数据接口

  • Grasshopper中Sequence上课笔记

    Grasshopper中Sequence上课笔记

    Sequence:数列,这个页面的运算器是作用于生成数学常见的数列和删除数列指定项目的。

    • Cull Index:按序号删除列表的项目。
      • i:输入要删除序号
        Pasted image 20220917110915
        Cull Nth:删除每第N个数据。
      • N输入大于等于的整数
      • Pasted image 20220917113349
        Cull Pattern:按Ture/False列表删除项目-
      • P端口输入删除的规则,删除规则也可以用0和1组成。
      • 0表示删除物件,1表示保留物件
      • Pasted image 20220917114050
        Random Reduce:随机删除列表的物件并输出随机打乱的数据列表。
      • R端口要随机移除的数据个数。
      • S端口输入随机种子整数,每一个整数代表一个随机排列。
      • Pasted image 20220917114906
        Char Sequence:创建文字列表。
      • C端口输入列表的长度。
      • P端口输入列表出现的字符
      • F端口格式化输出列表,{0}表示列表的数据
      • Pasted image 20220917120022
        Duplicate Data:复制数据。
      • N端口输入复制的个数
      • O端口切换输出数据的排列方式,排列方式有两种
        1. 默认按ABCABCABC….方式输出。
        2. Pasted image 20220917144547
        3. 当O输入False时,数据按AAAABBBBCCCC方式输出。
        4. Pasted image 20220917144618
          Fibonacci:斐波那契数列。又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……
        5. Pasted image 20220917151235
          Range:区间,默认输出0到1区间的等差数列。
      • D端口输入区间范围
      • N端口输入等差数列的个数
      • Pasted image 20220917151536
        Repeat Data:重复数据
    • L端口输入列表的总长度(列表数据的个数)
    • 当L数比原始数据大时,多出来的空位用重复数据填充
    • 下图当中,L=23,23-4=19,那19个数据的空位用重复原始数填充。
    • Pasted image 20220917152149
      Sequence:数列
    • N端口输入数列的公式。
    • 公式内[N-1]指数列的第N项的前一项,[N-2]指数列的第N项的前两项。
    • Pasted image 20220917153756
    • L端口输入列表的总长度。
    • I端口输入数列的前两项的值。
      Series:等差数列。
    • S端口输入数列的首位数值
    • N端口输入等差数列的公差。
    • C端口输入等差数列的个数。
    • Pasted image 20220917154804
      Stack Data:堆栈数据。
    • S端口输入堆栈数据个数。
    • Pasted image 20220917155700
      Jitter:震荡数据,打乱数据的排序。
    • J端口输入1或0,1开启震荡数据,0关闭 震荡数据。
    • S端口输入随机数种子。
    • Pasted image 20220917160638
      Random:随机数。
    • R端口输入随机数的区间。
    • N输入随机列表的长度。
    • S输入随机种子。
    • Pasted image 20220917161123
  • Sets集合面板之数据列表的运算

    Sets集合面板之数据列表的运算

    Set:集合面板
    作用:关于数据列表的运算,列表运算一般包含数据的增、删、改、查。
    List:列表的运算
    Sequence:数列的运算
    Sets:集合的运算
    Text:字符的运算
    Tree:数据结构的运算

    List:只要是数据的集合都可以称之为列表(List),一个数据或多个数据都可以成为列表。

    Insert Items:插入列表,给原始列表插入数据,L端口是原始列表,I要插入的数据,i插入数据位置。
    Pasted image 20220903113204
    Item Index:获取数列的序号
    Pasted image 20220903114207

    List Item:获取指定序号(Index)的数据。
    i端口输入要获取的数据的序号,可以输入一个或多个。
    放大视窗会可以增加减少输出端口。
    Pasted image 20220903114629

    List Length:获取列表的长度(数据的个数)。
    Pasted image 20220903115126

    Partition List:按数量拆分数据列表
    S端口输入拆分后的列表数据的数量,S端口可以输入一个整数或者多个整数。
    Pasted image 20220903115443
    输入多个整数的情况,下图当中S端口输入2和3两个数字,那么输出的列表为2个数字和3个数字的列表集合。
    Pasted image 20220903115759

    Replace Item:替换数据。
    L端口原始数据,I要替换的数据,i替换数据的位置
    Pasted image 20220903120143

    Reverse List:翻转数据的排序。
    快捷方式:在数据端口点击右键,选择Reverse命令
    Pasted image 20220903120639

    Shift List:偏移数据序号。
    S端口输入偏移的位数,比如输入1,这数据往后偏移1位,输入5,这数据往后偏移5位。
    Pasted image 20220903121017
    W端口控制是否删除偏移后的数据,默认不删除,W端口输入False则删除数据。
    Pasted image 20220903121351
    Sort List:按升降顺序排列数据。
    下图当中打乱数据的列表经过Sort List运算器后又重新升序排列顺序了。
    Pasted image 20220903121740

    Split List:分割列表
    i端口输入整数,按整数的数值分割成A和B两个新的列表。
    Pasted image 20220903122224

    Sub List:获取子列表
    D端口输入子列表的区间值。
    Pasted image 20220903122450

    Dispath:数据分流,根据布尔值的规则分为A和B两个数列。
    P端口输入分流的规则,规则内Ture数据分流到A列表,规则内False数据分流到B列表。
    默认参数内分流规则的数据为Ture和False,P端口可以任意的添加布尔值。
    Pasted image 20220903143702

    Null Item:判断空数据,Null代表空数据类型。
    N端口输出False表示没有空数据,输出Ture表示列表有空的数据。
    Pasted image 20220903144500
    在下图当中,圆形曲面上做等分点,由于有些等分点是落在圆形外面,圆形的点没有实际坐标,所以输出的点坐标有好多个空数据
    Pasted image 20220903144811
    Pick‘ n’ Choose:拾取选择数据
    Pasted image 20220903150653

    Replace Nulls:替换空数据
    如下图所示
    Pasted image 20220903151604
    Weave:混合数据
    P端口输入混合列表的序号,默认值为0,1
    0,1端口输入混合的列表数据,放大视窗可以增加输入端口,输入端口的序号和P端口的数据要一致。
    Pasted image 20220903152159

  • 斐波那契数列原理解析与Grasshopper插件应用

    斐波那契数列原理解析与Grasshopper插件应用

    本文原文出自斐波那契数列插件的作者的文档,中文为谷歌翻译,翻译难免会出错,有问题可以下面评论区讨论

    PhylloMachine 是一组脚本/用户对象,用于 Grasshopper 使用一些 叶序的特性。 基本思想是具有叶序比例的网格具有由两个描述的拓扑 斐波那契数及其拓扑(面顶点索引、寄生螺旋、循环和 拓扑邻居)由简单的数列描述,无需几何计算。 由于这些,它可以参数化地建模植物器官,如树枝、树叶或 花瓣,具有非常自然的效果。 PhylloMachine 仍在开发中,它是用 VisualBasic 编写的,并且是开源的。 我鼓励那些有兴趣进一步开发这个插件的人与我联系,特别是如果他们 有使用 L-Systems 的经验。

    作者的邮箱: dga_3@hotmail.co

    介绍

    叶序是自然界中描述植物间空间分布的一类模式 器官。 每个物种都有自己的形式模式,可能是最大化的进化解决方案 资源和成本最小化。 Phyllotaxis(来自古希腊语,phýllon“叶”和táxis“排列”)在植物学和 生物数学作为茎上叶子的排列,可以优化 叶子相对于其他叶子的位置,以最大限度地晒太阳,最大限度地减少干扰 它们之间。 有几种类型的叶序,但这里让我们只关注螺旋叶序,发散角137.5度。 它是自然界中最常见的类型,并密切相关 对于 phi 数,0,618 ^ 2 * 360 = 137.5 称为黄金角,正如我们将看到的还有斐波那契数列: 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144..[content_hide]

    image-20210617103114265[/content_hide]

    在坐标中,我们可以表示一个集合 从中心旋转 137.5 度的点和 在每次迭代时增加半径和角度。

    image-20210617103218587

    视觉通过接近形成的螺旋形状点之间与斐波那契数列相连数并且是网状拓扑的基础千叶机。

    image-20210617103307115

    在曲线上应用这种点的分布,我们得到基本的网格点集合称为 PhylloPoints。在下图中,显示的是球体而不是点,以便于查看 在两个方向形成的螺旋,顺时针和逆时针。这些螺旋 以 Paraschies 的名义而闻名。[content_hide]

    image-20210617103401021[/content_hide]

    网状拓扑 – 寄生数

    PhylloMachine使用phyllotaxis的一些属性将曲线包裹在四边形网格上,添加 器官,如花瓣、叶子或树枝。 PhylloMachine 的所有组件都旨在 使用四顶点面,因此不鼓励使用三角形网格。 当网格由以下定义时被认为是 PhylloMesh:

    • 可重新映射到圆柱坐标的点,
    • 定义网格拓扑的寄生数。

    Parastichy numbers 是斐波那契数列的一对数字 (a, b) – 连续祖先 或后代。可以使用其他数字,例如其他类型的卢卡斯系列phyllotaxis,但在 PhylloMachine 中并非如此。 这两个数字分别描述了顺时针和 逆时针方向。在这种情况下,螺旋是指由以下公式形成的假想曲线 在叶子、树枝或花瓣的循环之间连接某些植物器官。[content_hide]

    image-20210617103550748[/content_hide]

    在这张图片中,我们看到了寄生数的两种组合。 上图显示 PN = (3, 5),下图PN = (21, 34)。 这些数字对于每种植物来说都是独一无二的, 并且与每个周期的元素数量相关联,而一个周期是一整圈 所有螺旋。 一个循环的大小为 a + b,在上图 8 上,下图 55。越大 每个周期的元素数,寄生数越大

    此外,寄生数对应于最接近第一个点的索引 列表的点。 在下图中,从左到右,我们有: 在一组 phyllopoints 中(用你可以在这里看到的定义制作),两个最接近的点 索引 0 处的点是数字 3 和 5,它们对应于寄生数字。 这些 两个数字与 a) 点数,b) 半径 c) 曲线的长度有关。 保持变量 b 和 c 不变并增加点数,会有一段时间 当 PN 为 (5, 8) 时,如果我们继续 (8, 13)

    image-20210617103743677

    位于寄生数 (3, 5) 上方的下一个点是 8(即 3 + 5)。 因此我们 可以说,要从 phyllopoints 形成 phyllomesh 的面,它认为: 设 A、B、C 和 D 是每个点的迭代函数中每个顶点的索引(除了 最后 a + b 个元素,在本例中为 3 + 5,即对于除最后 8 个之外的所有点),我们有:

    • A = 指数
    • B = 指数 + PN (a)
    • C = 指数 + PN (a) + PN (b)
    • D = 指数 + PN (b)

    网格面(A、B、C、D) 在我们的例子中 PN = (3, 5) 将是:

    • 面 (0) = (0, 3, 8, 5)
    • 面 (1) = (1, 4, 9, 6)
    • 面 (2) = (2, 5, 10, 7

    如果我们想翻转面的方向来反转法向量,一个简单的方法 必须反转寄生数,即 PN = (b, a)。

    在下图中,我们看到了如何根据上述解释管理点数 每个面的顶点索引。 Merge 组件有一个包含四个点的列表(而不是四个 索引如上)在每个分支内。 那么包含少于 4 个的分支 元素(只有这样 Construct Mesh 组件不会因缺少点而返回错误)是 移除。[content_hide]

    image-20210617103938058[/content_hide]

    这是 PhylloMesh 的基本拓扑,但寄生数也决定了,没有 进行几何计算、拓扑邻居、循环和螺旋寄生。

    组件

    我们有四组组件:

    • 第一组包括所有组件 PhylloMeshes;
    • 第二组对分支等器官起作用, 叶子和花瓣;
    • 第三组有修改的组件;
    • 第四组包含实用程序。

    PhylloBranch

    包裹一条曲线以形成具有叶序图案的网格,并将一端焊接到网格面。

    PhylloMachine

    包裹曲线以形成具有叶序图案的网格的主要组件。 也返回每个面的顶点索引,8个相邻索引,螺旋寄生索引
    PN(a)、PN(b)和PN(a)+PN(b),以及周期索引

    PhylloSurface

    通过圆柱重映射在表面上创建 PhylloMesh

    PhylloMesh

    使用 PhylloMesh 的裸边缘覆盖末端,形成具有叶序的网格

    BezierCurve

    从网格面快速创建四个点的贝塞尔曲线。 它用于塑造树枝、花瓣和树叶的形状

    Branch

    挤出一个网格面,其中包含几个控制其大小的细分。 它可用于创建分支、茎或种子。

    Petal

    从网格面和引导曲线创建花瓣或叶子

    ExplodeMesh

    将网格的面作为单个网格返回

    MoveFac

    移动和缩放网格面

    OffsetMesh

    根据距离或距离列表挤压网格以形成实体。

    JoinMes

    将多个网格连接并组合成一个

    MoveVerte

    移动网格顶点

    Ifibonacc

    使用斐波那契数列的索引返回相应的数字或连续的对 数字。

    RndRange

    在域内创建一系列随机值。

    RatioBo

    用作视觉参考的框以帮助按比例调整设计参数

    逻辑叶轮机

    以下是使用这些组件创建植物的基本步骤:

    1. PhylloMesh(允许它的任何组件)生成词干或主要形式。
    2. 爆炸面。
    3. 选择面。 根据功能划分面孔列表(例如:花瓣、叶子、其余部分)。
    4. 创建形状曲线。 我们使用选定的面为花瓣或叶子创建曲线形状。
    5. 创建器官。 我们从选定的面和它们的面制作花瓣、叶子和树枝 形状曲线。
    6. 我们加入所有网格。 花瓣、树叶和所有其他未使用的面。
    7. 平滑焊接网。 最好使用 Weaverbird 的 Catmull-Clark Subdivision。 在 ExampleFiles 文件夹中,您将找到几个示例和详细教程 (1DaisyTutorial)。

    下次更新

    我为那些想要继续发展的人留下了几条路可以走千叶机。任何人都可以自由分享新功能、进行改进或更改, 只要满足许可条件。 特别是我还没有解决的两个问题:

    • PhylloMesh 分支。 将几条曲线同时包裹在一个 phyllomesh 中,这样我们就可以创建 来自一系列相交曲线的相互连接的分支。类似于 ExoWireframe, 但带有叶状体。
    • L 系统。 为此,PhylloMachine 组件已被编码为一个类。你可以加 插件的所有组件都作为此类的函数,并将它们与 L-System 一起使用。 然后系统将使用它自己的语法(或使用通常的语法)来建模 通过简单的规则处理。它应该是一个不同于 经典的 L 系统,因为它不仅应该生成线条,还应该生成 phyllo-wrap 和 植物的其他器官。

    我鼓励任何对这种生成建模有经验的人感兴趣 联系我。结果简直太棒了

    image-20210617105746907

  • Relative Item究竟有什么用,怎么用-Grasshopper运算器教程

    Relative Item究竟有什么用,怎么用-Grasshopper运算器教程

    在Grasshopper中有这么一个运算器-Relative Item ,好多人都不知道这个运算器是怎么用的,它有什么作用的
    今天我来给大家科普一下它的简单用法。
    归纳一下就是这么一个作用

    找到下一个物体的相关位置

    这听起来可能难以理解

    我今天用一个简单例子给大家说明一下

    比如有以下的点的矩阵,矩阵的坐标点(实际上是点在列表中的路径,而不是真实的坐标点)已经标识出来了

    image-20210610120812136

    标识点做坐标的算法看下图

    image-20210610120932650

    知道了点在列表中的路径,接下来就利用Relative寻找相关点,如下图所示,我把数据连接到Relative Item的T端口,而O端口输入文字“{1;1}”,这个{1;1}代表是{0;0}下一个点的相关点,我们也可以理解为{0;0}下一个点指向{1;1},同理{3;3}下一个点直线{4;4},{2;1}下一个点会指向{3;2}

    image-20210610121242406

    所以把所有点连接之后就会出现这样的情况,不知道大家看出来了规律了没有。

    image-20210610121647809

    如果把O值改变了会出现什么情况呢?这个留给大家自己探索了,你也可以把答案写在评论区内。

    好了今天的Grasshopper的运算器杂谈就分享到这里了