一、贝塞尔曲线

1.1、简介

下图中蓝色的线就是贝塞尔曲线,每条贝塞尔曲线都有控制点(下图中有四个),贝塞尔曲线必须经过第1个和最后一个控制点,并且需要和第起止控制点相切

1.2、如何得到贝塞尔曲线

首先找到三个控制点

然后取线段b0b1上的一个点,获取的方法依然是线性插值

然后取线段b1b2上的一个点,获取的方法也是线性插值

得到两个线性插值的点后,连接着两个点,并在这两个点组成的线段上再次进行线性插值取点

将上图中线性插值出来的所有点B02都连接起来就是一条贝塞尔曲线了

四个控制点或者五个控制点都是同理

贝塞尔曲线线性插值的动画如下

如果最终得到的线性插值的点都用控制点来表示,那么,拥有三个控制点的贝塞尔曲线可以表示成如下形式

拥有四个控制点的贝塞尔曲线的行使如下

通过对系数的观察可知,n次贝塞尔曲线的参数是(t + (1-t))的n-1次方的展开

二、贝塞尔曲线的性质

1、必定经过起止控制点且与起终线段相切

2、具有仿射变换性质,可以通过移动控制点移动整条曲线,就是说将贝塞尔曲线的控制点经过仿射变换后,将变换后的控制点连起来之后,依然是个相同的贝塞尔曲线

3、贝塞尔曲线一定不会超出所有控制点构成的多边形,如下图所示,所有的贝塞尔曲线,一定在凸包里面(蓝色线里面)。

三、贝塞尔曲线的改进

当传统贝塞尔曲线的控制点增多时,贝塞尔曲线的形状变得难以控制

所以,就有人提出了分段处理的方法,当控制点很多时,将控制点分组,每组控制点分别绘制贝塞尔曲线,然后将这些贝塞尔曲线连接在一起,形成一个新的贝塞尔曲线

这种分段的方法可以更好的控制贝塞尔曲线的局部。但是容易产生尖点(也就是不可导点),所以,为了使贝塞尔曲线更加光滑,连接控制点处必须可导

四、贝塞尔曲面

贝塞尔曲面的绘制也是基于贝塞尔曲线,只不过新加了一个高度信息

以16个控制点为例,首先找到空间中16个控制点,每四个一组,就能得到在空间中横向四个灰色的贝塞尔曲线,之后,再进行纵向遍历,每个贝塞尔曲线上都取一个点,纵向绘制贝塞尔曲线,就能得到一个贝塞尔去面,示意动图如下

参考

GAMES101-现代计算机图形学入门-闫令琪_哔哩哔哩_bilibili

Bezier Curve Edit (hws.edu)

欢迎大家评论交流,作者水平有限,如有错误,欢迎指出

11、计算机图形学——几何(贝塞尔曲线与曲面)相关推荐

  1. [计算机图形学]几何:曲线和曲面(前瞻预习/复习回顾)

    一.曲线 1.Bézier Curves-贝塞尔曲线 贝塞尔曲线也是一种显式的几何表示方法.贝塞尔曲线定义了一系列的控制点,致使确定满足这些控制点关系的唯一一条曲线:如上图定义的贝塞尔曲线满足 起始点 ...

  2. 计算机图形学中的曲线问题

    文章目录 免责 前言 拉格朗日插值多项式 第一步:得到一个基函数 第二步:得到所有基函数 第三步:对所有基函数进行线性组合 举例验证 拉格朗日插值曲线绘制实践 三次埃尔米特插值多项式 第一步:得到第一 ...

  3. 计算机图形学【GAMES-101】5、几何(距离函数SDF、点云、贝塞尔曲线、曲面细分、曲面简化)

    快速跳转: 1.矩阵变换原理Transform(旋转.位移.缩放.正交投影.透视投影) 2.光栅化(反走样.傅里叶变换.卷积) 3.着色计算(深度缓存.着色模型.着色频率) 4.纹理映射(重心坐标插值 ...

  4. 计算机图形学中的曲线问题——贝塞尔曲线的绘制

    贝塞尔曲线的绘制 由于 CSDN 的博客修改字数的限制,我们不得不将这一部分放到一个新的博客中.原文详见: GGN_2015 计算机图形学中的曲线问题 贝塞尔曲线的几何作图法 在上面介绍儿时的回忆中, ...

  5. 【转】贝塞尔曲线和曲面

    [转]贝塞尔曲线和曲面 原文地址:http://my.oschina.net/sweetdark/blog/183721 参数方程表现形式 在中学的时候,我们都学习过直线的参数方程:y = kx + ...

  6. 计算机图形学空间曲线,课程追忆之《计算机图形学》【曲线曲面篇】

    大家好,距离上一篇博文将近一个月,时间过得好快,原本计划周更的,后面推到半月跟,实际到现在是月更,每次在准备写点什么的时候,都会被一些杂乱的事物打扰,哎,重度拖延症.懒癌晚期- 继上次述说了<计 ...

  7. 10、计算机图形学——几何介绍(曲面的分类以及示例)

    一.隐式曲面及示例 隐式曲面顾名思义就是不能直接看到曲面的形状,而是通过表达式的方式来表示曲面.所以,该曲面的优势就是查找某个点是否在曲面上比较快,而该类型曲面缺点就是曲面的表达不直观 比如下面这三个 ...

  8. 音视频开发之旅(40)-贝塞尔曲线和曲面

    目录 贝塞尔曲线基本知识 画贝塞尔曲线 让曲线动起来 画贝塞尔曲面 资料 收获 本篇最终实现效果如下: 篇外说明:由于有必要学习使用下kotlin,后续的java层代码实现尽量采用kotlin 一.贝 ...

  9. 计算机图形学 第9章 自由曲线曲面

    第8章不学 目录 # 学习目标 # 消隐 ## 定义 1.线框模型 2.表面模型 3.实体模型 双表结构 定义三维顶点类 定义表面类 读入立方体的点表 读入立方体的面表 1.柏拉图多面体 柏拉图多面体 ...

最新文章

  1. Matlab相机标定并进行图像校正
  2. windows命令行设置环境变量
  3. 25 | 基础篇:Linux 磁盘I/O是怎么工作的(下)
  4. 滑动listview隐藏和显示顶部布局
  5. python编译成dll文件_用vc生成可被python调用的dll文件
  6. css 解析器 java_Java 的 CSS 解析器 jStyleParser
  7. java的jstl的标签库_java_jstl 标签库
  8. JBox2D 引擎 for Android 详解
  9. 1013.clion配置快捷提示模板
  10. mybatis mysql merge_使用Mybatis和druid连接池报错 merge sql error, dbType mysql, sql
  11. 发行版,distutils,setuptools和distutils2之间的区别?
  12. java异步判断数据库是否有重复字段值
  13. phpStudy3——往数据库中添加数据
  14. 高并发高负载系统架构-php篇
  15. 解决TIME_WAIT造成的服务器无法访问
  16. opencv同态滤波
  17. Oracle JDBC 驱动
  18. OA系统选型,明确需求是关键
  19. 解决关键词这个问题,ASO优化效果事半功倍
  20. linux , Shell 文件合并的命令

热门文章

  1. GNU make manual 翻译(六十九)
  2. 银行程序代发工资的方法
  3. 【转】PHP date(Y-m-d H:i:s);获取当前时间 差8小时解决办法
  4. Android布局之weight属性解析
  5. load generator 与ip Spoofer的区别
  6. 云计算时代的网络安全
  7. select 语句的执行顺序
  8. 在vs2005中调用远程WebService(幻想曲)
  9. 线性表的链式表示——单链表
  10. 机器学习基础专题:高斯分布