LOADING...

加载过慢请开启缓存(浏览器默认开启)

loading

计算机图形学⑩

2021/4/28

10.Geometry 2(curves and surface)

10.Geometry 2(curves and surface)

explicit(显式几何)

point cloud(点云)

把每个点表示成一个点(???)

解释成list of points比较好理解

能轻易的表示任何的几何图形

polygon mesh(多边形面)

应用的最多

把面拆成各种各样的三角形,用三角形去描述复杂的问题

object format(obj文件)

image-20210428091205538

用三角形面形成的物体用obj格式文件储存(和编译出来得到的obj不是一回事!)

相当于一个储存了顶点,法线,纹理,坐标,并把他们组合起来的文本文件

图中v储存顶点坐标,vn储存法线,vt存储纹理坐标,f表示这些数据如何组合在一起

我们看到一行f有三组,一组三个数,每组决定了使用哪些vn和vt和f数据,而每行则定义一个三角形面(三个点)


curves

bezier curve(贝塞尔曲线)

用一系列控制点去表示一条曲线

image-20210428100210771

如图定义起点和终点在p3上

曲线不一定要经过控制点


如何画一条贝塞尔曲线?(属于显式表示)

使用de castljau算法

image-20210428101635465

如图所示b0开始,b2结束,b1表示往哪个方向弯

定义一个范围为0到1的时间t,我们只需要算出任意一个时间t在空间中的位置算出就行

我们设b0到b1为t,b1到b2也为t,b01和b11都为1/3t

连接b01和b11,再取1/3,得到b02

这个b02就是这条贝塞尔曲线在时间t的位置

将所有的t都枚举出来并连接,就能得到所求的曲线

image-20210428101819834

四个点也一样,我们找一个点(例如0.5),然后一直取点连接最后得到一个点(有点类似递归)


evaluating bezier curve algebraic formula

(代数表示方法)

image-20210428102210986

不难看出,我们上面一直在做两个位置的线性插值

image-20210428102723162

显式的将公式表达出来(因为能用公示表达所以是显式的)

我们考虑t是靠近左边的那段距离。为什么算式是这样的?

想象t等于0时,即点在b0上,所表示的就应该是一个完全的t0,t等于1时也同样理解。

所以第三个算式一样很好理解,第四个算式就是将第一二个算式带入到第三个中,同样很好理解。

有没有发现第四个算式很像完全平方公式的展开?

だから!

image-20210428103657154

给n+1个控制点(0到n),得到一个n阶的贝塞尔曲线,这个贝塞尔曲线在任意时间t都是之前给定控制点的线性组合,组合的系数为一个多项式(如图所示的伯恩斯坦多项式,用来描述二项分布)

伯恩斯坦多项式:相当于(s+t)的n次方,如果是三个点(二阶,n=2),就相当于s^2+2s*t+t^2,再把s换成1-t。

image-20210428105246173

我们不需要限制这些点是否在同一平面内,同样可以进行插值

image-20210428105510396

这个是伯恩斯坦多项式的图像

(个人感觉看看就好)


贝塞尔曲线有些不错的性质:

image-20210428105908515

  • 规定了贝塞尔曲线一定过起点和终点
  • 如果是三阶(四个控制点),起点方向切线一定是3倍的(b1-b0),终点是3倍的(b3-b2)
  • 对控制点做仿射变换后,得到的贝塞尔曲线相当于对原来的贝塞尔曲线做相同的仿射变换(对于投影变换就并不是如此)
  • 凸包性质:贝塞尔曲线一定在控制点组成的凸包内

piecewise bezier curve(逐段定义贝塞尔曲线)

image-20210428111739737

因为用很多的点定义一条贝塞尔曲线并不直观

image-20210428111657841

所以发明了逐段定义方法,习惯用每四个点定义一段贝塞尔曲线

应用:ps里的钢笔工具

那我怎么保证连接处是光滑的呢?

image-20210428112157881

如果前后的控制点共线且等距离(切线相同,导数连续)


image-20210428112434811

在几何上,只要前后是在一块的,我们就认为是连续的,称为c0连续

image-20210428112419305

如果方向相反,距离相等(一阶导数连续)

称为c1连续

在制造上c1连续可能是不够的,所以同样也有高阶导数的连续,我们称为曲率连续。


image-20210428112834632

由一系列控制点控制的曲线叫样条,能满足一定的连续性

其中B样条应用较多

image-20210428113113746

b表示的是basis,基函数样条,能保证曲线的局部性,能保证挪动一个控制点后,对曲线的变化控制在一个范围内。

因为b样条太复杂所以不多bb


4.28 11:52完成 今天节奏特别好