11 Games101 - 笔记 - 几何(曲线与曲面)

11 几何(曲线与曲面)

贝塞尔曲线

定义

贝塞尔曲线:由控制点和线段组成的曲线,控制点是可拖动的支点。

如图,蓝色为贝塞尔曲线,p1, p2, p3为控制点,曲线和初始与终止端点相切,并且经过起点p0与终点p3。

de Casteljau Algorithm

de Casteljau算法描述了如何用多个点画出一条贝塞尔曲线。

其核心是线性插值递归

贝塞尔曲线的定义很像参数方程,给定一个参数t(范围为0-1)就能确定贝塞尔曲线上的一点,倘若取完所有t值,就能得到完整的贝塞尔曲线。

一阶贝塞尔曲线

二阶贝塞尔曲线

三阶贝塞尔曲线

代数式表达

将贝塞尔曲线展开可以得到n阶贝塞尔曲线的代数表达式:

注:

性质

  • 必定经过起始与终止控制点

  • 必定经与起始与终止线段相切

  • 具有仿射变换性质,可以通过移动控制点移动整条曲线

  • 凸包性质,曲线一定不会超出所有控制点构成的多边形范围

    • 凸包:墙上许多钉子,用一条橡皮筋包住最外边的钉子,再松手,橡皮筋收缩后的外框就是凸包。

分段贝塞尔曲线

传统贝塞尔曲线的缺点:当控制点多的时候不好控制曲线的形状。

分段贝塞尔曲线:将一条高次曲线分成多条低次曲线的拼接,其中用的最多的便是用很多的3次曲线来拼接。

贝塞尔曲面

以4 * 4 控制点的贝塞尔曲面为例:

  1. 在这4个控制点之下利用第一个参数 u 运用第一章的计算贝塞尔曲线的方法得到蓝色点,因为有4列,所以一共可以得到如图所示的4个蓝色点。(灰色曲线分别为每列4个点所对应的贝塞尔曲线)
  2. 在得到4个蓝色顶点之后,在这四个蓝色顶点的基础之下利用第二个参数 v 便可以成功得出贝塞尔曲面上一个点
  3. 遍历所有的 u,v值就可以成功得到一个贝塞尔曲面
相关推荐
深圳雨林凯AI4 小时前
图案裂变的“风格归一化“设计思路:主体保得住,画风才拉得齐|雨林凯AI技术笔记
人工智能·笔记
冬木家居6 小时前
40㎡客厅变形记,小家住出大自由[特殊字符]
android·经验分享·笔记·智能家居·微信公众平台
摇滚侠6 小时前
《SpringBoot 3:入门与应用实战》第 12 章 JDBC 与事务 数据库初始化机制 阅读笔记 36
数据库·spring boot·笔记
推送者8 小时前
用宠物照片制作桌宠:从AI拆帧到九点标定的本地化实现笔记
笔记·宠物·用宠物照片制作桌宠
一条破秋裤8 小时前
16_TIM编码器接口测速
笔记·stm32·学习
tju新生代魔迷8 小时前
Verilog HDL 学习笔记(十)| 第10章 时序和延迟
笔记·学习·fpga开发
血小板要健康10 小时前
链表 阶段算法总结
java·数据结构·笔记·算法·leetcode·链表
浔溺10 小时前
al+大数据每日学习笔记31
大数据·笔记·学习
摇滚侠10 小时前
《SpringBoot 3:入门与应用实战》第 9 章 跨域问题 阅读笔记 27
spring boot·笔记·okhttp
山岚的运维笔记10 小时前
mysql 专业笔记 -- 第 8 章:使用变量
运维·数据库·笔记·后端·学习·mysql·dba