当前课程知识点:Grasshopper参数化设计与建模 >  第五章 Nurbs曲线与曲面建模 >  5.4 由点建立曲线 >  5.4

返回《Grasshopper参数化设计与建模》慕课在线视频课程列表

5.4在线视频

下一节:5.5.1

返回《Grasshopper参数化设计与建模》慕课在线视频列表

5.4课程教案、知识点、字幕

在这一节我们将给大家介绍

由点来建立NURBS曲线的方法

并且介绍一个案例

就是DNA双螺旋结构的建模

我们说生成一个Nurbs曲线

可以从控制点的输入开始

我们在这里演示一下

Pt point

Set Multiple Point

注意在设置控制点的时候

我们必须要有输入的顺序

所以我们一个一个地来选择这些点

回车

我们现在有了五个点

然后在Curve里面我们使用

Nurbs Curve

在这里输入控制点

就会得到这条曲线

如果我们想生成一个封闭的曲线

我们可以在这里选中Periodic
如果我们想生成一个封闭的曲线

我们可以在这里选中Periodic

就是周期性

把它的布尔值设成True

就会形成一个封闭的曲线

那这个封闭的曲线

现在我们可以更进一步地理解
那这个封闭的曲线

现在我们可以更进一步地理解

这里的周期性到底是什么意思

比如说刚才我们选点的顺序是

0 1 2 3 4

那么到了第四个点的时候

如果我们拖动它的位置

我们会注意到其实这个点的位置

对于曲线形状的影响

已经超过了第0个点

到了0和1这两个点之间

也就是说一个点的影响范围是周期性的

或者我们看看第0个点

实际上它也会对这条曲线

它的左边和右边都产生影响
实际上它也会对这条曲线

它的左边和右边都产生影响

所以这里我们就能更好地理解

为什么我们说把一个曲线首尾相接

要用的关键词是周期性这个词
为什么我们说把一个曲线首尾相接

要用的关键词是周期性这个词

当然如果我们想做的是

经过这些点的一条Curve

我们也可以用这里的

Interpolate Curve

看一下它的名字

Interpolate Curve

同样我们可以在这里选择

它是一个周期性的曲线

移动这个点以后我们看到

它对这条曲线的影响是一种周期性的

当然前面我们也说过可以

这样来连接曲线

我们选择Close

这都是几种不同的生成曲线的方式

如果想要精确地生成一条曲线

我们可以采用

先把这条曲线上的若干个点的位置

用算法求出来

然后再用Interpolate Curve

把它们连接在一起的这种办法

比如说

现在我们在Rhino里面有一个点

我们希望以这个点为圆心

生成一条圆的曲线
我们希望以这个点为圆心

生成一条圆的曲线

那么我们就可以

先在这个圆上面找到一系列的点

然后再把它们连接起来

那么怎么在圆上面找到一系列点呢

用Sine Cosine

然后让这两个值

输入一个跟弧度有关的数据

然后把它们组合成xyz的坐标

应该用Cosine作x

用Sine作y

把原点跟这里新生成的点加在一起

然后在前面我们给它一个序列

让这个序列呢是从0到2π的

所以我们用一个Range

注意这里的Range我们可以

组合它一个Domain

它的起点我们用一个Panel输入0

用Construct Domain

把0和2组合在一起 形成2π

那么我们这样就得到了

看到这里的11个点

这11个点是我们

后面要形成这个圆的编辑点

或者说需要经过的这些点

后面我们就可以用一条

Interpolate Curve

来获得这条圆的线

当然也许这个圆看起来

如果觉得还不够圆的话

我们可以在这里的N

给它增加更多的点

比如说20个点

让这条曲线有更多的点来控制它的形状

这样我们就得到了一个圆

注意当你的图形如果

你在grasshopper里生成的图形

如果找不到了

或者它不在你视线范围的中心的话

你可以在这里鼠标中键
或者它不在你视线范围的中心的话

你可以在这里鼠标中键

然后选择这个zoom

那么它就会

把在grasshopper里生成的图形

聚焦到你的rhino视图的中心上

这样就比较方便

可能有同学会说

这里点的组合

其实是不是原理上应该是向量呢

确实是这样

如果用向量来表示

更符合画圆的基本逻辑

但是向量跟点

在grasshopper里面
但是向量跟点

在grasshopper里面

它的数据结构是非常相像的

它们一定程度上也可以相互替换

我们在这里可以改成xyz的向量

然后把这个点删掉

那么结果是一样的

那么如何调整这个圆的大小呢

它的半径呢

我们可以用设定向量长度的方法

在vector里面有amplitude

我们可以设定这个vector的大小

再把它给这边的

需要叠加的地方

跟原点加在一起

我们就会得到比较大的一个圆

可以调整它的大小

这个时候如果把这样一个slider

把它替换成一系列的数据

比如说用一个series

我们让它生成n个数据

在count 这里输入

然后我们把它替换掉这里的a

就会得到一条渐开线

一条半径越来越大的渐开线

为了不和前面的图重在一起

我们把这个点移动一下

这是我们得到的一条渐开线

同样我们也可以把刚才的圆

变成一条弹簧线
同样我们也可以把刚才的圆

变成一条弹簧线

怎么变成弹簧线呢

这个时候我们的半径是不变的

但是z方向的坐标是变的

这里的结果有点奇怪

这是因为我们把sin和cos搞反了

这里呢实际上sin应该做y坐标

cos应该做x坐标

我们把它调转过来再看一下

这里的结果有点奇怪

这是因为我们生成了

大小不同的很多的移动向量

但是又通过一个

设定向量长度的运算器

把所有的向量长度都设为了1.72

所以这样的结果就不对了

在这里实际上应该做一个替换

直接用这里生成的vector

输入到这边去移动中心点

这样的话我们就得到了一条

弹簧曲线

但这个弹簧曲线现在看起来有点高

所以可以在前面这里加入一个slider

或者小一点

加入一个slider 1.000

我们可以让曲线更紧密一些

另外一个问题是

我们看到最后一个点

看起来有点奇怪

这是为什么呢 是因为

我们在这边用range生成了22个点

而我们在这里用series生成的点呢

只有21个

所以在c这里我们应该给它加1

或者用其他的办法对齐

那么我们在这里呢

实际上希望替换一下

用range来生成这个区间的方式

也把它变成series

同样给它这么多的点

然后用一个1.000来生成它的区间

当然这个区间不能太大

我们要给它调小一点

然后替换掉这里的n

这几个运算器就暂时没有用了

把它拿到一边
这几个运算器就暂时没有用了

把它拿到一边

我们看到这里我们可以

让这条曲线有更多的控制点

让它变得越来越高

变成一个可调的弹簧线

因为用的都是series

所以生成点的数量是一样的

就不会出现刚才最后组合

多出一个的问题

那么下面如果我们想做一个

比如说像DNA的双螺旋结构

其实可以在这个程序的基础上

把这条曲线做一个旋转

把这条曲线做一个旋转

Rotate

把一个geometry输入进来

基于一个点

我们在这里直接用点来做它的坐标

然后让它旋转一个角度

这里是0.5π

我们可以给它输入π

就得到了一个DNA的双螺旋结构

我们把前面的一些预览把它关掉

比如说这个点把它关掉

我们可以调整一下

这个双螺旋结构它的高度

我们可以给它

在这个上面画出很多的连线

那么这个连线呢

可以用什么样的办法来做呢

可以用我们刚才学过的Evaluate

Evaluate Curve的办法

得到第一个curve上的点

当然我们在这里需要

对curve做一个Reparameterize

然后给它一个Range

根据range生成一系列的点

生成一系列的参数

然后来对应得到点
生成一系列的参数

然后来对应得到点

那么这里我们可以输入

slider 得到很多的点

可以少一点

同样我们可以用相同的方法

得到另外一系列的点

然后把两边的点用线连在一起

这样就得到了一个DNA的双螺旋结构

接下来呢

我们想给这样的双螺旋曲线

加上一个方的管子

对中间的这些连线呢

加上一些圆的管子

我们看看这个怎么来做

对于这样的曲线

我们说这两条双螺旋曲线

我们要给它加上方的管子

那么这里会用到一个叫做

Perpendicular Frames

我们把curve接到这上面去

注意这个运算器在Curve底下的

Division底下

我们看到沿着这条曲线

就生成了一系列的局部坐标系

frame

但这个frame的密度还不是很高

所以我们可以给它

我们借用这里的连线的分段数

借用这个数字把它接到n上面
我们借用这里的连线的分段数

借用这个数字把它接到n上面

来增加它的分段数

我们看到这个面就比较多了

那么这个frame实际上是

沿着曲线的一个局部坐标系
那么这个frame实际上是

沿着曲线的一个局部坐标系

我们在这个frame上使用Rectangle

这样一个运算器

我们把frame给它

这样的话就能生成一系列的方形的截面

方形截面的范围呢

我们看到在这里需要用到Domain

我们可以用Construct Domain

然后我们用一个slider

比如说0.20的slider

接到A 接到B

然后在A这里我们输入公式

Expression -x

把它变成它的相反数

然后用它分别作为x和y的输入

那现在我可以把这个frame

把它预览关掉

这样看得清楚一点

好 看起来还是有点大

我们可以再小一点

然后对于得到的这些rectangle

那么我们把它用Loft的方式

最后把它变成一根管子

然后这个预览就可以不看了

包括中间的有很多的点

我们也可以不看它

这样就得到了一个方向的方管子

其实大家也可以直接在这里

把我们得到的另外一条曲线

这里因为预览被关掉了

这条曲线我们也可以把它

按住shift接到C上面去

就这个Perpendicular Frame上面去

我们得到另外一条管子

然后对于这里的这根连线呢

我们可以给它加上一根圆管子

叫Pipe

这个Pipe呢它有一个半径

我们先给它设定一个0.05的

比较小的一个半径

然后把管子给它

好这样的话我们就得到了一个

双螺旋结构的模型

总结以下本节的要点

本节我们将介绍了由点建立NURBS曲线的不同方法

包括Nurbs curve、Interpolate curve、Polyline

接下来我们介绍了

DNA双螺旋结构建模的案例

包括四个步骤

步骤1:使用三角函数和向量构建弹簧曲线

步骤2:使用旋转操作建立双螺旋线

步骤3:使用evaluate操作建立双螺旋之间的连线

步骤4:使用PerpFrame、Rectangle、Loft操作生成方管、圆管

Grasshopper参数化设计与建模课程列表:

第一章 参数化设计简介

-1.1 参数化设计简介

--1.1

--模型文件

第二章 Grasshopper简介

-2.1 Grasshopper简介

--2.1

-2.2 Grasshopper界面与基本操作

--2.2

-2.3 Bake与Internalize Data操作

--2.3

-第二章习题--作业

第三章 Grasshopper基本数据类型

-3.1 Math运算器

--3.1.1

-3.2 点与向量

--3.2.1

--3.2.2

-3.3 Grasshopper曲线运算器

--3.3.1

--3.3.2

-3.4 Grasshopper曲面运算器

--3.4.1

--3.4.2

-3.5 案例:水波

--3.5

-3.6 案例:螺旋曲面

--3.6

-第三章习题--作业

第四章 Grasshopper数据结构(一)

-4.1 Grasshopper数据结构基础

--4.1

-4.2 数据流匹配

--4.2

-4.3 Dispatch运算器

--4.3.1

--4.3.2

-4.4 案例:项链

--4.4.1

--4.4.2

--4.4.3

-第四章 Grasshopper数据结构(一)--第四章习题

第五章 Nurbs曲线与曲面建模

-5.1 Nurbs原理简介

--5.1

-5.2 Nurbs建模演示

--5.2

-5.3 Evaluate操作

--5.3

-5.4 由点建立曲线

--5.4

-5.5 Nurbs与向量

--5.5.1

--5.5.2

-5.6 案例:凤凰中心曲线环廊

--5.6.1

--5.6.2

-5.7 案例:鸟巢表皮钢结构

--5.7.1

--5.7.2

-第五章习题(一)--作业

-第五章 Nurbs曲线与曲面建模-- 第五章习题(二)

期中大作业

-期中作业:工艺品设计

--期中作业

第六章 Grasshopper数据结构(二)

-6.1 Grasshopper树状数据结构(1)

--6.1.1

--6.1.2

--6.1.3

-6.2 案例:2016年BIG事务所蛇形画廊

--6.2.1

--6.2.2

-6.3 Grasshopper参数化表皮

--6.3.1

--6.3.2

-6.4 案例:凤凰中心表皮结构

--6.4.1

--6.4.2

-第六章 Grasshopper数据结构(二)--第六章习题

第七章 Grasshopper建模技巧

-7.1 Image Sampler

--7.1.1

--7.1.2

-7.2 案例:望京soho表皮

--7.2

-7.3 Vironoi运算器

--7.3

-7.4 Metaball运算器

--7.4

-7.5 参数化设计在大型项目中的应用案例-“红飘带”景观装置

--7.5

--第七章 Grasshopper建模技巧--第七章习题

第八章 Mesh建模基础

-8.1 Mesh原理

--8.1

-8.2 SubDivision与银河Soho案例

--8.2

-8.3 地形建模

--8.3

-8.4 面板划分:以银河soho为例

--8.4.1

--8.4.2

-第八章 Mesh建模基础--第八章习题

第九章 Kangaroo物理模拟

-9.1 Kangaroo插件简介

--9.1

-9.2 悬链线

--9.2.1

--9.2.2

--9.2.3

--9.2.4

-9.3 张拉膜,充气膜与可受弯面

--9.3.1

--9.3.2

-9.4 CirclePacking

--9.4

-结语

--9.5

-第九章 Kangaroo物理模拟--第九章习题

期末作业

-期末作业: 综合运用

--期末大作业

5.4笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。