文档介绍:1 怎样确定 Bezier 曲线的控制点(一) 设在平面上已知有 1?n 个数据点),( iiiyxP ,ni,,2,1,0??。要求在相邻的每两个点 iP 与1?iP 之间,用一条 3次 Bezier 曲线连接。 3次 Bezier 由4 个点确定: iP 是它的起点, 1?iP 是它的终点,在起点和终点之间, 另外还有两个控制点,依次记为 iA 和iB 。现在的问题是:如何确定这两个控制点? (二) 如果在各段 3次 Bezier 曲线的接头处, 只要求曲线函数式的一阶导数连续, 也就是说, 只要求曲线的切线斜率连续,那么,控制点还是很容易确定的。我们只要过每一个 iP 点, 分别作曲线的切线, 然后把位于 iP 前面的控制点 1?iB 和位于 iP 后面的控制点 iA ,都取在过 iP 点所作的切线上就可以了。如果我们把过 iP 点的切线方向, 取为与线段 11??iiPP 平行的方向, 那么, 控制点 iA 的坐标就可以表示为: iA ()( 11???? iiixxax ,)( 11???? iiiyyay ); 控制点 iB 的坐标就可以表示为: iB ()( 21iiixxbx????,)( 21iiiyyby????)。其中, a ,b 是两个可以任意给定的正数,比如说,我们可以取 4 1??ba ,这时, 控制点的坐标可以用下列公式求出: iA (4 11???? iiixxx ,4 11???? iiiyyy ); iB (4 21 iiixxx ????,4 21 iiiyyy ????)。例设1?iP ,iP ,1?iP ,2?iP 这4 点的坐标为)1,1(),( 11???iiyx ,)2,2(),(? iiyx ,)1,3(),( 11???iiyx ,)2,4(),( 22???iiyx , 按照上面给出的公式,可以求得控制点 iA 的坐标为(4 11???? iiixxx ,4 11???? iiiyyy )?(4 132 ??,4 112 ??))2,(?, 2 控制点 iB 的坐标为(4 21 iiixxx ????,4 21 iiiyyy ????)?(4 243 ??,4 221 ??))1,(?。连接 iP 与1?iP 的3次 Bezier 曲线的参数方程为???????????????????????? 323223 323223232)1(3)1(6)1(2 )1()1()1(2tttttttty tttttttttx 。这条 3次 Bezier 曲线的图像为还必须指出, 对这种曲线的最初一段和最后一段, 不能用上述公式计算, 因为公式中要用到),( 11??yx 和),( 11??nnyx ,这两个点其实是不存在的。这时可以有几种处理方法: (1)用),( 00yx 的值作为),( 11??yx 的值,用),( nnyx 的值作为),( 11??nnyx 的值。也就是说,在连接 0P 与1P 的最初一段 Bezier 曲线中,控制点 0A 的坐标为 0A (4 010xxx ??,4 010yyy ??)。在连接 1?nP 与nP 的最后一段 Bezier 曲线中,控制点 1?nB 的坐标为 1?nB (4 1??? nnnxxx ,4 1??? nnnyyy