openGL参数曲面----二次贝塞尔曲线

openGL系列文章目录

前言

在20 世纪50 年代和60 年代在雷诺公司工作期间,皮埃尔·贝塞尔(Pierre Bézier)开
发了用于设计汽车车身的软件系统。他的程序利用了Paul de Casteljau 之前开发的数学方程
组,后者曾为竞争对手雪铁龙汽车制造商[BE72,DC63]工作。de Casteljau 方程仅使用几个标量
参数描述曲线,同时使用一种高明的的递归算法,称为“de Casteljau 算法”,就可以生成任
意精度的曲线。现在它们分别被称为“贝塞尔曲线”和“贝塞尔曲面”,这些方法通常用于
高效地对各种曲面3D 物体进行建模。

一、二次贝塞尔曲线

二次贝塞尔曲线由一组参数方程定义,方程组中使用3 个控制点指定特定的曲线的形状,
每个控制点都是2D 空间中的一个点。①考虑图11.1 中所示的一组3 个点[p0,p1,p2]。
通过引入参数t,我们可以构建一个用来定义曲线的参数方程组。t 表示从一个控制点到
另一控制点间线段距离的分数。对于在线段上的点,t 的值在[0…1]的范围内。图11.2 显示
了一个这样的值:t = 0.75,分别应用于连接p0-p1 和p1-p2 的线段。通过t 在两条原始线段上
定义了两个新点p01(t)和p12(t)。我们对连接两个新点p01(t)和p12(t)的线段重复该过程,产生
点P(t),其中沿线段p01(t)和p12(t)在t = 0.75 得到点P(t)。P(t)是最终得到的曲线上的点,因
此用大写字母P 表示。
在这里插入图片描述
图1
针对各种t 值收集大量的点P(t),则会产生一条曲线,如图11.3 所示。采样的t 的参数
值越多,生成的点P(t)越多,得到的曲线则越平滑。现在可以导出二次贝塞尔曲线的分析定义。首先,我们注意到连接两个点pa 和pb 的线段pa−pb 上的任意点p 可以用参数t 表示如下:
在这里插入图片描述
在这里插入图片描述

                                                                       图2

在这里插入图片描述
图3

在这里插入图片描述
图4
因此,我们通过控制点的加权和解出曲线上的任意点。加权函数B 通常被称为“混合函
数”(尽管名称“B”实际上源自Sergei Bernstein [BE16],他首先描述了这个多项式族)。请注
意,混合函数的形式都是二次的,这就是为什么得到的曲线称为二次贝塞尔曲线。

参考

计算机图形学编程 使用OpenGL和C++

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值