如何计算bezier曲线的控制点
答案:1 悬赏:60 手机版
解决时间 2021-04-06 17:59
- 提问者网友:锁深秋
- 2021-04-06 01:10
如何计算bezier曲线的控制点
最佳答案
- 五星知识达人网友:西岸风
- 2021-04-06 02:20
如何利用VC + + 编程技术在图形系统中动态绘制任意阶Bezier 工程曲线方 法,并且使绘制的曲线具有捕捉、修改、动态增加型值点等功能。利用同样的方法,可以实现 B 样条、三次参数等其它工程曲线的绘制,从而扩大了Bezier 等曲线的工程应用。 关键词:Bezier 曲线; 动态绘制; 高阶; VC + + 中图分类号: TP391 文献标识码:A 文章编号:1671 - 5322(2004) 04 - 0029 - 05 UG、CATIA 等图形系统可以实现B 样条曲线 的动态绘制方法,但没有Bezier 、三次参数样条等 曲线的绘制方法。虽然B 样条曲线使用最广泛, 但Bezier 、三次参数样条在工程上也有较多的运 用。为拓宽工程曲线的应用范围, 在结合现行 Bezier 等曲线的算法的基础上,利用VC + + 开发 工具实现了高阶Bezier 等曲线的绘制方法,较方 便地动态实现了曲线的修改。本设计模块可以单 独使用,也可作为一个模块嵌入其它图形系统中 使用。从绘制Bezier 曲线的方法中可了解用现行 绘图软件实现曲线的动态绘制、曲线的识别、拖动 型值点修改曲线等编程方法,该方法对于开发其 它专业图形系统有极大的帮助。 1 Bezier 曲线的算法 1. 1 Bezier 曲线的描述 设 P 0 , P 1 , P 2 , …, P n , 为 n 阶Bezier 曲线的特 征多边形控制点,则Bezier 曲线一般表达式为 P( t) = ∑ n i =0 B i , n ( t) P i , 0 ≤t ≤1 (1) 其中: B i , n ( t) = C n i (1 - t) n - i t i ( i = 0 , 1 , …n) 1. 2 绘制Bezier 曲线的条件 绘制Bezier 曲线的条件有两种,一是给出型 值点坐标,另一是给出控制点坐标。在计算中,一 般最终是利用控制点坐标计算来绘制曲线的。当 给出的数据是型值点时,要利用型值点的坐标值 反求出控制点坐标,再利用控制点坐标进行插补 运算求出曲线的坐标,反求控制点的算法为: 设给出的型值点为 Q 0 , Q 1 , Q 2 …Q n , 要反求 的控制点为 P 0 , P 1 , P 2 …P n , 设参数 t = 0 , 1/ n , 2/ n …1 时分别经过 Q 0 , Q 1 , Q 2 …Q n , 根据Bezier 定义有 Q 0 = P(0) = P 0 Q 1 = P(1/ n) = B 0 , n (1/ n) P 0 + B 1 , n (1/ n) P 1 + … + B n , n (1/ n) P n …… (2) Q n- 1 = P( ( n - 1) / n) = B 0 , n ( ( n - 1) / n) P 0 + B 1 , n ( ( n - 1) / n) P 1 + …+ B n , n P n Q n = P n 把上式写成矩阵形式,利用矩阵的求逆运算, 求出控制点为式(3) 。
2 绘制曲线类的方法 2. 1 构造Bezier 曲线类 在VC + + 中绘制Bezier 曲线,首先建立Bezi2 er 曲线类,利用Bezier 类的指针来对Bezier 曲线进 行控制。在VC + + 中所构造Bezier 的曲线类为 CBezier : : CBezier ( short ColorPen......余下全文>>
2 绘制曲线类的方法 2. 1 构造Bezier 曲线类 在VC + + 中绘制Bezier 曲线,首先建立Bezi2 er 曲线类,利用Bezier 类的指针来对Bezier 曲线进 行控制。在VC + + 中所构造Bezier 的曲线类为 CBezier : : CBezier ( short ColorPen......余下全文>>
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯