参数曲线的快速生成算法.doc
约49页DOC格式手机打开展开
参数曲线的快速生成算法,50页4.3万余字 摘 要本毕业设计主要研究参数曲线的直接快速生成,要直接生成参数曲线就需对参数方程{x=f(t),y=g(t),(0 t 1)}的参数t每次增加一个步长,然后计算该点的x和y坐标值并绘制该点。要逐点地生成参数曲线,就要求参数t每次增加的步长要使曲线前进的幅度不得超过一个象素长度,否则有可能跨过一个中间...
内容介绍
此文档由会员 lzj781219 发布
50页4.3万余字
摘 要
本毕业设计主要研究参数曲线的直接快速生成,要直接生成参数曲线就需对参数方程{x=f(t),y=g(t),(0 t 1)}的参数t每次增加一个步长,然后计算该点的x和y坐标值并绘制该点。要逐点地生成参数曲线,就要求参数t每次增加的步长要使曲线前进的幅度不得超过一个象素长度,否则有可能跨过一个中间象素而产生断点。
为了提高曲线生成算法的速度,本毕业设计针对如何选择最佳的步长进行比较讨论,以使曲线前进的幅度在不超过一个象素的前提下,选择尽量大的步长。为了进一步提高算法的速度,在前面讨论的最佳步长的基础上又采用了双步逐点曲线生成算法,即将上述得到的步长增加一倍,以使算法的循环次数减少一半。由于步长增加一倍,这样当曲线前进一步时,其幅度有时会大于一个象素的长度,这时我们通过插值的方法来确定跨过的那个中间象素。
通过上述讨论的算法能够比较快速的逐点生成曲线,为了实现上述算法,本毕业设计使用Visual C++6.0为工具并以三次Bezier曲线、普通参数曲线{x=f(t)=X3t3+X2t2+X1t+X0, y=g(t)=Y3t3+Y2t2+Y1t+Y0},以及导师所给的一个特殊的曲线方程为例编程实现上述算法。
关键词:参数曲线,逐点,双步,Visual C++6. 0
Abstract
This graduation project main reseach the direct born of the parameter curve {x=f(t),y=g(t),0<= t <=1,}quickly.To direct born of the parameter curve it need to increase the parameter ‘t’ a step length each time,then caculate this point’s coordinates value of x and y and draw this point.For drawing the parameter curve by point to point it orde to the parameter t’s step length of increased make the progress range of the curve can not large than the length of one pels, otherwise the curve may step over one middle pels and skip one point that it should be on the curve.
For speeding up the arithmetic of the drawing of the curve, this graduation project have discussed the choice of the best step length, so as to choose the biggst step length on the premise that the progress range is not large than one ples. To speeding up the arithmetic more, before the base of discussion about the best step length just now,we take the arithmetic of double step form of the curve by point to point ,and it double the step length that it be caculated just now to lessen the time of the circulation in the arithmetic to the half.Because it have doubled the step length,the progrss rang may large than the length of one pels when the curve go ahead one step.Then we must take the method of difference to make sure the middle pels that be steped over.
It can draw the curve quickly that used the arithmetic we have discussed.To achive the arithmetic,I have used the Visual C++6.0 and take example for the three time Bezier parameter curve ,a common parameter curve{x=f(t)=X3t3+X2t2+X1t+X0, y=g(t)=Y3t3+Y2t2+Y1t+Y0, 0 t 1} and a curve that my teacher gived to me to complete the program.
Keywords:curve,point to point,double step,Visual C++6. 0
Author:
July 2003
目 录
摘 要………………………………………………………………………….…1
第一章 与本毕业设计相关的Visual C++内容介绍
1.1 Visual C++6.0简介…………………………………………………………………4
1.2 与本毕业设计有关的Visual C++内容介绍……………………………………….5
第二章 计算机图形学中常用的算法
2.1 常用直线的绘制算法………………………………………………………………6
2.2 常用的参数曲线的绘制算法……………………………………………………...7
第三章 参数曲线的快速生成算法及实现
3.1 普通参数曲线生成算法的介绍…………………………………………………..11
3.2 最佳的步长值…………………………………………………………………..…13
3.3 双步逐点曲线生成算法…………………………………………………………..14
3.4 以三次Bezier曲线为例编程实现该算法………………………………………..16
3.5 普通参数曲线方程的编程实现…………………………………………………..28
3.6 使用双步逐点曲线生成算法需要注意的一个问题……………………………..31
第四章 导师所给的参数方程的研究
4.1 通过在屏幕上鼠标点击若干点然后绘制曲线………………………………….32
4.2 通过在对话框中输入控制点的坐标绘制曲线………………………………….36
第五章 结论………………………………………………………………………………38
第六章 个人小结……………………………………………………………...39
第七章 附录
英文资料翻译……………………………………………………………………...40
参考文献…………………………………………………………………………...48
参 考 文 献
[1]刘勇奎 编著 计算机图形学的基本算法
科学出版社
[2]黄有度 朱功勤编著 参数多项式曲线的快速逐点生成算法
计算机学报 2000年第四期
[3]孙家广 等编著 计算机图形学(第三版)
清华大学出版社
[4]同志工作室 编著 Visual C++6.0开发技巧与实例教程
人民邮电出版社
摘 要
本毕业设计主要研究参数曲线的直接快速生成,要直接生成参数曲线就需对参数方程{x=f(t),y=g(t),(0 t 1)}的参数t每次增加一个步长,然后计算该点的x和y坐标值并绘制该点。要逐点地生成参数曲线,就要求参数t每次增加的步长要使曲线前进的幅度不得超过一个象素长度,否则有可能跨过一个中间象素而产生断点。
为了提高曲线生成算法的速度,本毕业设计针对如何选择最佳的步长进行比较讨论,以使曲线前进的幅度在不超过一个象素的前提下,选择尽量大的步长。为了进一步提高算法的速度,在前面讨论的最佳步长的基础上又采用了双步逐点曲线生成算法,即将上述得到的步长增加一倍,以使算法的循环次数减少一半。由于步长增加一倍,这样当曲线前进一步时,其幅度有时会大于一个象素的长度,这时我们通过插值的方法来确定跨过的那个中间象素。
通过上述讨论的算法能够比较快速的逐点生成曲线,为了实现上述算法,本毕业设计使用Visual C++6.0为工具并以三次Bezier曲线、普通参数曲线{x=f(t)=X3t3+X2t2+X1t+X0, y=g(t)=Y3t3+Y2t2+Y1t+Y0},以及导师所给的一个特殊的曲线方程为例编程实现上述算法。
关键词:参数曲线,逐点,双步,Visual C++6. 0
Abstract
This graduation project main reseach the direct born of the parameter curve {x=f(t),y=g(t),0<= t <=1,}quickly.To direct born of the parameter curve it need to increase the parameter ‘t’ a step length each time,then caculate this point’s coordinates value of x and y and draw this point.For drawing the parameter curve by point to point it orde to the parameter t’s step length of increased make the progress range of the curve can not large than the length of one pels, otherwise the curve may step over one middle pels and skip one point that it should be on the curve.
For speeding up the arithmetic of the drawing of the curve, this graduation project have discussed the choice of the best step length, so as to choose the biggst step length on the premise that the progress range is not large than one ples. To speeding up the arithmetic more, before the base of discussion about the best step length just now,we take the arithmetic of double step form of the curve by point to point ,and it double the step length that it be caculated just now to lessen the time of the circulation in the arithmetic to the half.Because it have doubled the step length,the progrss rang may large than the length of one pels when the curve go ahead one step.Then we must take the method of difference to make sure the middle pels that be steped over.
It can draw the curve quickly that used the arithmetic we have discussed.To achive the arithmetic,I have used the Visual C++6.0 and take example for the three time Bezier parameter curve ,a common parameter curve{x=f(t)=X3t3+X2t2+X1t+X0, y=g(t)=Y3t3+Y2t2+Y1t+Y0, 0 t 1} and a curve that my teacher gived to me to complete the program.
Keywords:curve,point to point,double step,Visual C++6. 0
Author:
July 2003
目 录
摘 要………………………………………………………………………….…1
第一章 与本毕业设计相关的Visual C++内容介绍
1.1 Visual C++6.0简介…………………………………………………………………4
1.2 与本毕业设计有关的Visual C++内容介绍……………………………………….5
第二章 计算机图形学中常用的算法
2.1 常用直线的绘制算法………………………………………………………………6
2.2 常用的参数曲线的绘制算法……………………………………………………...7
第三章 参数曲线的快速生成算法及实现
3.1 普通参数曲线生成算法的介绍…………………………………………………..11
3.2 最佳的步长值…………………………………………………………………..…13
3.3 双步逐点曲线生成算法…………………………………………………………..14
3.4 以三次Bezier曲线为例编程实现该算法………………………………………..16
3.5 普通参数曲线方程的编程实现…………………………………………………..28
3.6 使用双步逐点曲线生成算法需要注意的一个问题……………………………..31
第四章 导师所给的参数方程的研究
4.1 通过在屏幕上鼠标点击若干点然后绘制曲线………………………………….32
4.2 通过在对话框中输入控制点的坐标绘制曲线………………………………….36
第五章 结论………………………………………………………………………………38
第六章 个人小结……………………………………………………………...39
第七章 附录
英文资料翻译……………………………………………………………………...40
参考文献…………………………………………………………………………...48
参 考 文 献
[1]刘勇奎 编著 计算机图形学的基本算法
科学出版社
[2]黄有度 朱功勤编著 参数多项式曲线的快速逐点生成算法
计算机学报 2000年第四期
[3]孙家广 等编著 计算机图形学(第三版)
清华大学出版社
[4]同志工作室 编著 Visual C++6.0开发技巧与实例教程
人民邮电出版社