- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
怎样确定 Bezier 曲线的控制点
(一)
设在平面上已知有 n 1 个数据点 Pi ( xi , yi ) , i 0,1, 2 , , n 。要求在相邻的每两
个点 Pi 与 Pi 1 之间,用一条 3 次 Bezier 曲线连接。
3 次 Bezier 由 4 个点确定: Pi 是它的起点, Pi 1 是它的终点,在起点和终点之间,
另外还有两个控制点,依次记为 Ai 和 Bi 。现在的问题是:如何确定这两个控制点?
(二)
如果在各段 3 次 Bezier 曲线的接头处,只要求曲线函数式的一阶导数连续,也就是说,只要求曲线的切线斜率连续,那么,控制点还是很容易确定的。
我们只要过每一个
Pi
点,分别作曲线的切线, 然后把位于 Pi 前面的控制点 Bi 1
和
位于 Pi 后面的控制点
Ai
,都取在过 Pi 点所作的切线上就可以了。
如果我们把过 Pi
点的切线方向, 取为与线段
Pi 1 Pi 1
平行的方向, 那么,控制点
Ai
的坐标就可以表示为:
Ai ( xi
a( xi 1 xi 1 ) , yi
a( yi 1
yi 1 ) ) ;
控制点 Bi 的坐标就可以表示为:
(
,
(
)
) 。
Bi xi 1 b( xi 2 xi )
yi 1
b yi 2
yi
其中, a , b
是两个可以任意给定的正数,比如说,我们可以取
a b
1
,这时,
4
控制点的坐标可以用下列公式求出:
Ai ( xi
xi 1
xi 1
, yi
yi 1
yi 1
) ;
4
4
Bi ( xi 1
xi 2
xi
, yi 1
yi 2
yi
) 。
4
4
例 设 Pi 1 , Pi , Pi 1 , Pi 2 这 4 点的坐标为
(xi 1 , yi 1 ) ( 1,1) , ( xi , yi ) ( 2, 2 ) , ( xi 1 , yi 1 ) ( 3,1) , (xi 2 , yi 2 ) ( 4, 2 ) ,
按照上面给出的公式,可以求得控制点 Ai 的坐标为
xi 1xi 1
yi 1yi 1
)
( 2
3 1
1 1
( 2.5, 2) ,
( xi
, yi
, 2
)
4
4
4
4
1
控制点
Bi 的坐标为
( xi 1
xi 2
xi
, yi
yi 2
yi
) (
3
4 2
, 1
2 2
( 2.5,1) 。
4
1
4
4
4
)
连接 Pi
与
Pi 1 的 3
次 Bezier
曲线的参数方程为
x
2(1
t )3
7.5t (1
t) 2
7.5t 2 (1
t)
3t 3
2
1.5t
1.5t 2
t 3
y
2(1
t )3
6t(1
t) 2
3t 2 (1
t)
t 3
2
3t 2
2t 3
。
这条 3
次 Bezier 曲线的图像为
还必须指出, 对这种曲线的最初一段和最后一段, 不能用上述公式计算, 因为公式中要
用到 ( x 1 , y 1 ) 和
(xn 1 , yn 1 )
,这两个点其实是不存在的。这时可以有几种处理方法:
( 1)用 ( x0 , y0 )
的值作为
( x 1 , y 1 )
的值,用
(xn , yn )
的值作为 ( xn 1 , yn 1 ) 的值。
也就是说,在连接 P0
与 P1 的最初一段 Bezier
曲线中,控制点
A0 的坐标为
A0 ( x0
x1
x0 , y0
y1
y0
) 。
4
4
在连接 Pn 1 与 Pn 的最后一段 Bezier
曲线中,控制点
Bn 1
的坐标为
Bn 1 ( xn
xn
xn 1 , yn
yn
yn 1
) 。
4
4
( 2)用曲线开端处和结尾处的切线方向来确定曲线的最初一段和最后一段。
设在曲线开端处, 即在
P0 ( x0 , y0 )
点,给定参数函数的一阶导数值为
x (t)
x0
y (t)
,
y0
也就是说,给定曲线在开端处的切线斜率为
y (t )
y0
。
x (t )
x0
2
在曲线结尾处,即在
Pn
( xn , yn )
点,给定参数函数的一阶导数值为
x (t )
xn
y (t )
,
yn
也就是说,给定曲线在结尾处的切线斜率为
y (t )
yn
。
x (t )
xn
这时,在连接
P0
与 P1
的最初一段 Bezier
曲线中,控制点 A0
的坐标为
A0 ( x0
x0
, y0
y0
) 。
4 x02
4 x0 2
y0 2
y0 2
在连接 P
与 P 的最后一段
文档评论(0)