目录
显示表示
表示方法
![](https://img-blog.csdnimg.cn/20210327190737730.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FsbW9zdF9hZmVp,size_16,color_FFFFFF,t_70)
点云
密集的点能形成一个面。
特点:
- 能够十分简单的表示任何几何形体
- 对于大量数据的点集合很有用
- 通常被转换为多边形的面
- 在采样不足的区域很难绘制出图形
![](https://img-blog.csdnimg.cn/20210327190854467.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FsbW9zdF9hZmVp,size_16,color_FFFFFF,t_70)
Polygon Mesh
应用最广泛的一种方式。
特点:
- 存储顶点和面的信息,面通常是三角形或者四边形
- 更容易处理和采样
- 使用的数据结构更加复杂
![](https://img-blog.csdnimg.cn/20210327191030684.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FsbW9zdF9hZmVp,size_16,color_FFFFFF,t_70)
几何体(模型)可使用obj文件进行存储
其中,v表示每个顶点的坐标,vt表示纹理坐标,vn表示顶点的法向量,f是一个面,使用索引调用以上三者(顶点索引 纹理索引 法线索引)。
曲线
贝塞尔曲线 Bézier Curves
p
0
p_0
p0,
p
1
p_1
p1,
p
2
p_2
p2,
p
3
p_3
p3为控制点,其中
p
0
p_0
p0和
p
3
p_3
p3为起点和终点。起点和终点的切线方向为
p
0
p
1
p_0p_1
p0p1和
p
3
p
2
p_3p_2
p3p2。
绘制贝塞尔曲线
贝塞尔曲线可以使用递归的方法画出:
![](https://img-blog.csdnimg.cn/20210327191841331.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FsbW9zdF9hZmVp,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20210327191848674.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FsbW9zdF9hZmVp,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20210327191943889.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FsbW9zdF9hZmVp,size_16,color_FFFFFF,t_70)
代数表示
![](https://img-blog.csdnimg.cn/20210327192025833.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FsbW9zdF9hZmVp,size_16,color_FFFFFF,t_70)
曲线上的点是所有控制点的一个线性组合,公式如下:
![](https://img-blog.csdnimg.cn/20210327192259651.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FsbW9zdF9hZmVp,size_16,color_FFFFFF,t_70)
贝塞尔曲线属性
- 第一个控制点为曲线起点,最后一个控制点为曲线终点,曲线一般不经过其他控制点。
- 最开始的两个控制点和最后的两个控制点决定曲线起点和终点的切线方向。
- 用控制点绘制曲线后进行仿射变换和先对控制点进行仿射变换后绘制曲线得到的结果相同。
- 凸包性质,画出的曲线在所有控制点围成的凸包内部。
分段贝塞尔曲线 Piecewise Bézier Curves
当有较多控制点时,绘制出的曲线无法体现出控制点的偏移幅度。
当控制点十分多的时候再用贝塞尔曲线,得到的曲线就难以达到我们想要的标准,于使引入了分段贝塞尔曲线。
分段贝塞尔曲线通常使用四个控制点定义一段曲线,最终将这些曲线连接。
分段贝塞尔曲线的连续性
分段贝塞尔的连续性有两种:
-
C
0
C_0
C0连续,即上一段曲线的终点时下一段曲线的起点,这种情况进满足曲线的连接,不要求连接点处的切线连续。
-
C
1
C_1
C1连续,在连接处切线连续,即可导。如下图,中间红点左右是两段曲线,当左右两边的控制点在同一条直线上且与中间红点的距离相等时,即可满足可导。
样条曲线 Spline
一个连续的曲线由一系列的控制点控制,并且在曲线上的任意一点都满足连续性。可以完成局部修改,无需分段。
本质上也是控制点的加权值,但基函数不同。
贝塞尔曲线的缺点:
- 当修改一个控制点时,会导致整个曲线发生变化
曲面
贝塞尔曲面
![](https://img-blog.csdnimg.cn/20210327193802454.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FsbW9zdF9hZmVp,size_16,color_FFFFFF,t_70)
先在一个方向上绘制出贝塞尔曲线,再在另一个方向上绘制曲线。