计算机图形学笔记 || 自由曲线和曲面

一、基本概念

初等解析曲面(平面、圆柱面、球面等);自由曲面,一类不能用初等解析函数完全清楚地表达全部形状的曲面,这方面的研究形成了“计算机辅助设计”。

直线段有三种表示方法,设直线段的两端点坐标分别为P_{0}(x_{0},y_{0})P_{1}(x_{1},y_{1})

  1. 显式方程:y=y_{0}+\frac{y_{1}-y_{0}}{x_{1}-x_{0}}\left ( x-x_{0} \right )
  2. 隐函数方程:f\left ( x,y \right )=y-y_{0}-\frac{y_{1}-y_{0}}{x_{1}-x_{0}}\left ( x-x_{0} \right )=0
  3. 参数方程:\left\{\begin{matrix} x=x_{0}+\left ( x_{1}-x_{0} \right )t\\ y=y_{0}+\left ( y_{1}-y_{0} \right )t \end{matrix}\right.t\in \left ( 0,1 \right ),用参数方程表示的曲线和曲面可以直接进行几何变换,且易于表示成矢量和矩阵

一条三次曲线的参数方程的矢量和矩阵表示

  1. 参数方程:\left\{\begin{matrix} x\left ( t \right )=a_{x}t^{3}+b_{x}t^{2}+c_{x}t+d_{x}\\ y\left ( t \right )=a_{y}t^{3}+b_{y}t^{2}+c_{y}t+d_{y}\\ z\left ( t \right )=a_{z}t^{3}+b_{z}t^{2}+c_{z}t+d_{z} \end{matrix}\right.t\in \left [ 0,1 \right ]
  2. 矢量表示:p\left ( t \right )=at^{3}+bt^{2}+ct+d,t\in \left [ 0,1 \right ]
  3. 矩阵表示:p(t)=\begin{bmatrix} t^{3} & t^{2} &t & 1 \end{bmatrix}\cdot \begin{bmatrix} a\\ b\\ c\\ d \end{bmatrix}

拟合(Fitting)包括插值与逼近。插值(Interpolation):当用一组数据点来指定曲线的形状时,曲线精确地通过给定的数据点且形成光滑的曲线,这组数据点称为插值;逼近(Approximation):当用一组控制点来指定曲线的形状时,曲线被每个控制点吸引但实际上并不经过这些控制点。

连续性条件:为保证多个曲线段或曲面片在连接点处光滑过渡,需要满足连续性条件,有参数连续性和几何连续性。

参数连续性C^{0}指相邻两段曲线在结合点处具有相同的坐标;C^{1}指相邻两段曲线在结合点处具有相同的一阶导数;C^{2}指相邻两段曲线在结合点处具有相同的一阶导数和二阶导数。

几何连续性C^{0}指相邻两段曲线在结合点处具有相同的坐标;C^{1}指相邻两段曲线在结合点处的一阶导数成比例;C^{2}指相邻两段曲线在结合点处的一阶导数和二阶导数成比例。

二、Bezier曲线

Bezier曲线由法国雪铁龙(Citroen)汽车公司的De Casteljau于1959年发明,后又由法国雷诺(Renault)汽车公司的工程师Bezier于1962年独立发明。

定义:给定n+1个控制点P_{i}\left ( i=0,1,2,...,n \right ),称为n次Bezier曲线,P_{i}是n+1个控制点,B_{i,n}(t)是Bezier基函数。

p\left ( t \right )=\sum_{i=0}^{n}P_{i}B_{i,n}(t),t\in \left ( 0,1 \right ) , B_{i,n}(t)=C_{n}^{i}t^{i}\left ( 1-t \right )^{n-i}=\frac{n!}{i!(n-i)!}t^{i}\left ( 1-t\right )^{n-i}

 

一次Bezier曲线(一段直线)p\left ( t \right )=\sum_{i=0}^{1}P_{i}B_{i,1}(t)=\left (1-t \right )\cdot P_{0}+t\cdot P_{1}

 

二次Bezier曲线(抛物线)p\left ( t \right )=\sum_{i=0}^{2}P_{i}B_{i,2}(t)=\left ( t^{2}-2t+1 \right )\cdot P_{0}+\left ( -2t^{2}+2t \right )\cdot P_{1}+t^{2}\cdot P_{2}

 

矩阵形式为:P\left ( t \right )=\begin{bmatrix} t^{2} & t & 1 \end{bmatrix}\cdot \begin{bmatrix} 1 & -2 &1 \\ -2 & 2 &0 \\ 1 & 0 &0 \end{bmatrix}\begin{bmatrix} P_{0}\\ P_{1}\\ P_{2} \end{bmatrix}

 

三次Bezier曲线(自由曲线)p\left ( t \right )=\sum_{i=0}^{3}P_{i}B_{i,3}(t)=\left (- t^{3}+3t^{2}\cdot 3t+1 \right )\cdot P_{0}+\left (3t^{3}-6t^{2}+3t \right )\cdot P_{1}+\left ( -3t^{3}+3t^{2} \right )\cdot P_{2}+t^{3}P_{3}

 

矩阵形式:P\left ( t \right )=\begin{bmatrix} B_{0,3} &B_{1,3}&B_{2,3}&B_{3,3}\end{bmatrix}\cdot \begin{bmatrix} P_{0}\\ P_{1}\\ P_{2}\\P_{3} \end{bmatrix}=\begin{bmatrix} t^{3} &t^{2}&t&1\end{bmatrix}\cdot \begin{bmatrix} -1 & 3&-3&1 \\ 3 & -6&3 &0 \\ -3&3 & 0 &0 \\1&0&0&0\end{bmatrix}\cdot\begin{bmatrix} P_{0}\\ P_{1}\\ P_{2}\\P_{3} \end{bmatrix}

 

Bernstein基函数的性质:

  1. 非负性
  2. 端点性
  3. 权性
  4. 对称性
  5. 导函数

 

Bezier曲线的性质:

  1. 端点性:Bezier曲线的起点和终点分别位于P_{0}P_{n}上。
  2. 一阶导数:Bezier曲线的起点和终点处的切线方向和控制多变形的第一条边及最后一条边的走向一致。
  3. 二阶导数:起始点和终止点的二阶导数分别取决于最开始的三个控制点和最后的三个控制点。
  4. 对称性:Bezier曲线在控制多边形的起点和终点具有相同的性质。
  5. 凸包性:Bezier曲线位于控制多边形构成的凸包内,永远不会超出凸包的范围。
  6. 几何不变性:Bezier曲线的形状仅与控制多边形各顶点的相对位置有关,与坐标系的选择无关。
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值