分类: Grasshopper纹理算法

  • 10波浪密拼网点纹理-Grasshopper纹理

    10波浪密拼网点纹理-Grasshopper纹理

    纹理特色


    • 原点造型呈现出波浪形状排列
    • 其中大的波浪原点呈错位重复出现
    • 大波浪之间还有渐变的圆点阵列

    算法步骤


    • 1波浪线单元体
    • 2波浪线单元体做等距移动
    • 3波浪曲线两两之间生成曲线间平分线
    • 4去掉重合的线
    • 5波浪线内渐变半径的圆形阵列
    • 6创建边界的圆形
    • 7创建网格实体
    • 8Grasshopper算法电池图下连接关系

    详细步骤


    1波浪线单元体

    波兰线单体由两条线构成的。

    一般画波浪想用函数映射器(Graph mapper)中的sine函数就可以输出波动数据了。

    只要把函数输出值做数列偏移(Shift List)运算,然后再输入点坐标当中,就可以得到错位波浪曲线。


    以下是Grasshopper算法:

    2波浪线单元体做等距移动

    把波浪线复制N分,再做等距移动运算,这样就得到整个纹理的主要框架。这里要注意的是移动间距要比波浪线的波峰数值大,否则两个波浪曲线将会相交到一起。

    以下是Grasshopper算法:

    3波浪曲线两两之间生成曲线间平分线

    曲线之间的平分线是作为内部填充圆的基础线条。

    以下是Grasshopper算法:

    4去掉重合的线

    以下是Grasshopper算法:

    5波浪线内渐变半径的圆形阵列

    获取主干线的点,然后计算内部点到主干点的距离,映射出合适的点距离作为圆形的半径,最终形成渐变的圆形矩阵。

    由于内部的波浪有些地方的间距过小,会形成很多些小的圆点密集或者相交,那么要设定一个最小间距值,把小于改间距的图形删除,本案例设定的值为1.712(见下图)。

    以下是Grasshopper算法:

    6创建边界的圆形

    主干线的点阵也要创建圆形图案,边界上的圆形没有做渐变处理,但是我们还得主要其最小间距,否则这些圆形将会相交碰撞到一起。

    获得最小间距方法主要是通过点生成线框架(Graph mapper),通过计算线框架(Graph mapper)的边线长度得来的。从线框架得到按线长度排列的数据列表,获取第一个(最小值排第一位)就可以了。

    以下是Grasshopper算法:

    7创建网格实体

    以下是Grasshopper算法:

    8Grasshopper算法电池图下连接关系

    以下是Grasshopper算法:

    Grasshopper算法电池图下面购买下载

  • 09六边形网格点纹理-Grasshopper纹理

    09六边形网格点纹理-Grasshopper纹理

    纹理特色


    • 错位间隔圆点组合成菱形图案,菱形图片作为单体
    • 点阵菱形单体平铺到大的正六边形内部
    • 正六边形再作为单元体平铺到大六边形矩阵内

    算法步骤


    • 1通过观察编号获取菱形基本图形
    • 2菱形基本体内计算点阵
    • 3旋转阵列基本体,形成六边形单元
    • 4单元体平铺到大六边形矩阵当中
    • 5生成圆形网格面
    • 6Grasshopper算法电池图下连接关系

    详细步骤


    1通过观察编号获取菱形基本图形

    本案例绘制菱形的方法是通过提取三角形矩阵内的两个相邻的两个正三角形组合而成的,这样就省去可各种参数设置了。

    提取的三角形编号分别是14、15 、25、26,这四个三角形刚好是一正一反的两队三角形。


    以下是Grasshopper算法:

    2菱形基本体内计算点阵

    在菱形图案的内部铺满点,然后把菱形的边界往内部偏移出两条内部线条,在计算点是否在偏移后的曲线内(外),通过判断得出组合成点阵的菱形图案

    以下是Grasshopper算法:

    3旋转阵列基本体,形成六边形单元

    环形阵列6六个组成六边形点阵图案单元体

    以下是Grasshopper算法:

    4单元体平铺到大六边形矩阵当中

    以下是Grasshopper算法:

    5生成圆形网格面

    以下是Grasshopper算法:

    6Grasshopper算法电池图下连接关系

    以下是Grasshopper算法:

    Grasshopper算法电池图下面购买下载

  • 08六边形螺旋纹路纹理-Grasshopper纹理

    08六边形螺旋纹路纹理-Grasshopper纹理

    纹理特色


    • 六边形元素:纹理图以六边形为基本单元,这些六边形形成了图案的基本网格结构。
    • 螺旋点阵:每个六边形单元内部充满了螺旋状排列的点阵,这些点阵从六边形的中心向外扩展。
    • 渐变点密度:点阵的密度从中心向外逐渐减少,产生了一个渐变效果。这种渐变在视觉上形成了一种向心或离心的动感。
    • 多重层次:由于点阵的排列方式和密度变化,图案具有多重层次感,给人一种深度和立体感。

    算法步骤


    • 1六边形旋涡形状
    • 2 1/6六边形旋涡生成点阵
    • 3生成旋涡最内部边缘点
    • 4根据边缘点距离的渐变算法
    • 5平铺到六边形网格当中
    • 6生成圆形网格面
    • 7Grasshopper算法电池图下连接关系

    详细步骤


    1六边形旋涡形状

    首先创建一个多边形,然后用贝塞尔函数值缩放六边形,形成同心六边形矩阵,接着把这些六边形按照等差数量数值旋转每一个六边形,这样就形成了六边形旋涡,把我六边形旋涡炸开,用List Item获取六边形的一条边界。

    以下是Grasshopper算法:

    2 1/6六边形旋涡生成点阵

    把上一个步骤得到的线段做等分点(Divide Curve)运算,就可以得到点阵,在这个点阵有头部位置是重合点,这时要把重合点清理掉,最后顺便把数据拍平,这样可以简化数据结构

    以下是Grasshopper算法:

    3生成旋涡最内部边缘点

    用List Item工具筛选出旋涡最内部边缘的点,这些点最终是用作点阵距离渐变运算的。

    以下是Grasshopper算法:

    4根据边缘点距离的渐变算法

    用最近点的方式计算出旋涡点阵到边缘点的距离,再把距离值重新映射到合适的范围,这样我们就得到了渐变圆形的阵列了,最后圆形点阵做环形阵列,阵列六分形成六边形旋涡单元体。

    以下是Grasshopper算法:

    5平铺到六边形网格当中

    六边形旋涡单元体用Orient定位到大六边形矩阵的中心点位置

    以下是Grasshopper算法:

    6生成圆形网格面

    经过多次解组后赋予颜色

    以下是Grasshopper算法:

    7Grasshopper算法电池图下连接关系

     

    Grasshopper算法电池图下面购买下载

  • 07菱形阵列渐变三角形纹理-Grasshopper纹理

    07菱形阵列渐变三角形纹理-Grasshopper纹理

    纹理特色


    • 渐变的三角形铺满网格
    • 三角形渐变大小并非整体变化,而是一个个三角形区域单独变化

    算法步骤


    • 等边三角形堆叠金字塔网格阵列
    • 金字塔的中心点
    • 大的三角形矩阵
    • 金字塔定位到大三角形矩阵中
    • 正三角形渐变算法
    • 生成网格面

    详细步骤


    等边三角形堆叠金字塔网格阵列

    等边三角形堆叠出的“金字塔”网格如下图所示:

    原理是建立三角形阵列,通过数据筛选的方式删除掉不要的部分

    以下是Grasshopper算法:这个算法逻辑上比较的复杂,主要是通过观察点系列的顺序方法,筛选掉不要的部分。

     

    金字塔的中心点

    Convex Hull 计算三角形边框和中心点

    大的三角形矩阵

    生成一个大三角形矩阵用于容纳上文的三角形网格。

    金字塔定位到大三角形矩阵中

    金字塔Orient定位到大三角形当中。定位之前还得把金字塔倒180度,做成倒三角的形状。

    正三角形渐变算法

    这个渐变算法根据小三角形到大三角形的其中一个角点的距离变化的。

    生成网格面

    Grasshopper算法电池图下连接关系

    Grasshopper算法电池图下面购买下载

  • 06渐变十字图案参数化纹理-Grasshopper纹理

    06渐变十字图案参数化纹理-Grasshopper纹理

    纹理特色


    • 在正方形网格上布满十字花图案
    • 十字花网格点上为正排,在网格中心为斜四十五度排列
    • 十字花大小随着边框距离变化而变化
    • 距离边框越近十字花越小

    算法步骤


    • 单个叶片
    • 十字叶片
    • 网格点阵
    • 点阵边框
    • 叶片定位到点阵上
    • 按照边框距离大小渐变缩放
    • 生成圆形网格面

    详细步骤


    单个叶片

    十字花属于比较复杂的图形,一般设计图案初级阶段我们可以用犀牛来绘制,这样方便快捷,到了最后定稿阶段再把图案完全参数化。

    下图Grasshopper算法绘制单个叶片方法主要是用三点定圆弧(Arc 3Pt )的方法,三个点来至于多边形的三个角点,叶片两边是对称的,用相同的方法绘制即可,做好叶片后在用缩放工具(Scale NU )拉伸成长条状即可。

    以下是Grasshopper算法:

    十字叶片

    十字花就用环形阵列工具阵列出4个叶片就可以了,然后正十字花群组后旋转45度,形成斜45度十字花。

    以下是Grasshopper算法:

    网格点阵

    布置网格点阵,这个用Grasshopper默认的正方形网格(Square)即可,然后分别计算网格交叉点和正方形中心点(Area)

    点阵边框

    绘制点阵的边框无需手动绘制,只要把点阵所有的点集合起来,用Convex Hull就可以计算出边界,边界还需比点阵更大一些,给边界偏移20的宽度,最后给边界等分点(Divide Curve),这些等分点是用于计算十字花到点的距离的。

    叶片定位到点阵上

    把十字花定位到点阵上,用的Orient运算器。

    按照边框距离大小渐变缩放

    用最近点(Closest Point)运算器计算十字花中心到边界点的距离,把得到的数据重映射(Remap Numbers)成合理的数值,最后把数值赋予到缩放(Scale)比例值内,这样就形成了图片渐变的效果了。

    以下是Grasshopper算法:

    生成圆形网格面

    各个模块之间的连接关系

    Grasshopper算法电池图下面购买下载

  • 05渐变瀑布流表皮-Grasshopper纹理

    05渐变瀑布流表皮-Grasshopper纹理

    纹理特色


    • 整体纹理效果像万箭齐发的流星雨往一个方向迸发。
    • 每一列流星都是平行的,流星的数量和间距都是随机生成

    算法步骤


    • 生成随机点数据
    • 生成随机点
    • 随机点连接成多段线,多段线分解成功线段
    • 在线段上生成渐变的圆形队列
    • 生成网格实体

    详细步骤


    生成随机点数据

    随机点的生成可以用Populate 2D 这个运算器,可以本案例中的随机点是整体上是平行间距相等的,所以不能用这个运算器生成随机点,它生成的点就是纯粹的随机点,间距是混乱的。

    我用到的算法是用两个Random(随机数运算器)相加得到分组的随机数,再把随机进行累加(Mass Addition )的操作,这样就能得到逐渐变大的随机数。

    生成随机点

    X方向点是间距相同的,所以X方向数据输入等差数列,把随机数输入到点的Y方向,这样平行的随机点就生成了。

    随机点连接成多段线,多段线分解成功线段

    点是从低到高排列的,把这些串来之后再炸开(Explode ),这样非常简单的得到连续的随机长度的线段,我们再把这些线段截断,取得子线段(Sub Curve ),那么线段与线段之间的间距也是随机的。

    在线段上生成渐变的圆形队列

    这里等分线段不能最常用等分点(Divide Curve),而要用长度方式等分线段(Divide Length),因为从效果图上看每个小圆的间距是一样的,还有这里要注意的是圆形半径值的数量要和等分数一直,这里最用Repeat Data处理一下数据就可以了。

    生成网格曲面实体

     

    Grasshopper算法电池图下面购买下载

  • 04灰阶图渐变点阵-Grasshopper纹理

    04灰阶图渐变点阵-Grasshopper纹理

    纹理特色


    • 圆形排列的圆点
    • 圆点数量每一圈的点数逐渐变少
    • 圆形内的点生成小的圆形
    • 小圆形的的半径跟随背景色的深度变化

    算法步骤


    • 布置圆形排列点
    • 导入背景图并输出灰阶值
    • 灰阶值作为半径值输入给圆形
    • 生成网格曲面实体

    详细步骤


    布置圆形排列点

    线绘制等比放大的同心圆,然后在同心圆曲线上做等分点,这里的等分点数量要随着圈数的变化而变化,外圈的圆周长长,等分点数多,内圈的周长短,等分点数少

    Grasshopper算法如下图

    导入背景图并输出灰阶值,把灰阶值赋予到圆形的半径里。

    导入背景图用运算器是图像采样器(Image Sampler)
    双击图像采用其进入采样器内部选择图片的地址,设置采样器的输出通道,在下图所示

    1. 导入图片地址
    2. 设置最大点阵的最大范围(最大范围的算法详看下面解释)
    3. 选择输出颜色通道为灰阶


    Grasshopper算法

    计算灰阶值之前要先计算点阵覆盖的最大范围

    用最近点(Closest Point )运算器就可以算出圆形点阵到引力点的距离,再把这个距离映射到合适大小,最后把这个值赋予圆形即可。

    生成网格曲面实体

     

     

    Grasshopper算法电池图下面购买下载

  • 03环形多个吸引点渐变网点纹理-Grasshopper纹理

    03环形多个吸引点渐变网点纹理-Grasshopper纹理

    纹理特色


    • 圆形排列的圆点
    • 圆点数量每一圈的点数逐渐变少
    • 圈内的点圆形半径被引力因子吸引,半径大小跟随引力变化

    算法步骤


    • 布置圆形排列点
    • 制作作为引力因子的点
    • 根据点到到引力因子的距离生成圆形
    • 生成网格曲面实体

    详细步骤


    布置圆形排列点

    线绘制等比放大的同心圆,然后在同心圆曲线上做等分点,这里的等分点数量要随着圈数的变化而变化,外圈的圆周长长,等分点数多,内圈的周长短,等分点数少

    Grasshopper算法如下图

    制作作为引力因子的点

    严格意义上来说,引力因子的点可以任意的点集合,而本次例子是圆形的点阵,我这次把引力因子的点做成螺旋状排列的,这样比较契合本次案例。

    螺旋点算法也是比较简单的,原理就是把等距的点沿着一个中心旋转,旋转的角度要等差变化,这样就可以做出螺旋点了。

    Grasshopper算法

    根据点到到引力因子的距离生成圆形

    用最近点(Closest Point )运算器就可以算出圆形点阵到引力点的距离,再把这个距离映射到合适大小,最后把这个值赋予圆形即可。

    生成网格曲面实体

     

     

     

    Grasshopper算法电池图下面购买下载

  • 02密拼错位波浪线纹理-Grasshopper纹理

    02密拼错位波浪线纹理-Grasshopper纹理

    纹理特色


    • 波浪线错位排列且紧密相间
    • 每一层波浪线夹杂着平分线

    算法步骤


    • 波浪线单元体
    • 等距移动
    • 生成曲线间平分线
    • 去掉重合的线

    详细步骤


    波浪线单元体

    首先绘制波浪线单元体,单元体有两条波浪线构成,它波形完全相同,但是波的起点高度不一样,类似下图这样的图形

    下面是波浪线的Grasshopper算法,算法核心思想就是给波数列做偏移,这样就可以改变波的起点数据了。

    等距移动

    给物体赋予等差数列,让它形成等间距的形状。

    等距移动后的效果

    生成曲线间平分线

    等距平分线,这个没什么好说的,AB两端输入曲线即可

    去掉重合的线

    曲线之间平面生成后会遗留下很多重合的线条,用下面的算法清理掉重合线。


     

  • 01编织网格渐变点纹理-Grasshopper纹理

    01编织网格渐变点纹理-Grasshopper纹理

    纹理特色


    • 四个方向的渐变点阵列相互环绕形成一个方阵。
    • 点阵头部圆点直径从头部到尾部为线性变小的趋势
    • 以这样的一个方阵为整体,阵列组成更大的方阵。
    • 大方阵呈现的视觉效果类似编织网格线的纹理。

    算法步骤


    • 创建中心正方形
    • 创建渐变点阵
    • 阵列点阵形成大方阵
    • 生成网孔平面并流动到曲面上

    详细步骤


    创建中心正方形

    用一对相反数生成矩形,把矩形炸开后延长(Extend Curve)直线,最终生成中心的十字线,这个十字线是整个纹理最核心的部分,所有的圆点都落在这个线上。

    创建渐变点阵

    把十字线进行偏移,偏移的距离刚好等于中心点矩形的边长。给偏移后的平行线做等分点处理,最后在等分点上绘制等差渐变的圆形

    阵列点形成大方阵

    阵列(Rectangular Array )的间距应当比点阵单元体稍大一些。

    生成网孔并流动到曲面上

    给大方阵套上稍大的边框,组成冲孔板(Boundary Surfaces),再用CopyTrim流动到曲面上。