计算机图形学——绘制bezier曲线

上传人:mg****85 文档编号:34160051 上传时间:2018-02-21 格式:DOC 页数:5 大小:60KB
返回 下载 相关 举报
计算机图形学——绘制bezier曲线_第1页
第1页 / 共5页
计算机图形学——绘制bezier曲线_第2页
第2页 / 共5页
计算机图形学——绘制bezier曲线_第3页
第3页 / 共5页
计算机图形学——绘制bezier曲线_第4页
第4页 / 共5页
计算机图形学——绘制bezier曲线_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《计算机图形学——绘制bezier曲线》由会员分享,可在线阅读,更多相关《计算机图形学——绘制bezier曲线(5页珍藏版)》请在金锄头文库上搜索。

1、计 算 机 图 形 学实 验 报 告专 业: 信息与计算科学 班 级: 1002 班 学 号: 1008060* 姓 名: * 实验目的:(1) 掌握直线的参数表示法。(2) 掌握德卡斯特里奥算法的几何意义。(3) 掌握绘制二维 Bezier 曲线的方法。实验要求:(1) 使用鼠标左键绘制个数为 10 以内的任意控制点,使用直线连接构成控制多边形。(2) 使用鼠标右键绘制 Bezier 曲线。(3) 在状态栏显示鼠标的位置坐标。(4) Bezier 曲线使用德卡斯特里奥算法绘制。实验算法:Bezier 曲线的分割递推德卡斯特里奥算法给定空间 n+1 个点 Pi(i=0,1,2,n)及参数 t,

2、有(t)=(1-t) (t)+t (t)ri 1-ri1-ri式中,r=1,2,n;i=0,1,n-r;t0,1。且规定当 r=0 时, (t)= , (t)是在曲线上具有参数 t 的0iin0点。德卡斯特里奥算法的基础就是在矢量 上选择一个点 P, P10使得 P 点划分矢量 为| |:| |=t:1-t,给定点 P100P0、P1 的坐标以及 t 的值,点 P 的坐标为 P=P0+t(P1-P0)=(1-t)P0+tP1。式中,t0,1。定义贝塞尔曲线的控制点编号为 ,其中,r 表示迭代次数。i德卡斯特里奥证明了,当 r=n 时, 表示 Bezier 曲线上的点。n0函数功能介绍1.德卡斯

3、特里奥函数:long CMy12View:DeCasteliau(double t,long *p)double PN_MAX_POINTN_MAX_POINT;int n=CtrlPNum-1;for(int k=0;k=n;k+)P0k=pk;for(int r=1;r=n;r+)for(int i=0;i=n-r;i+)Pri=(1-t)*Pr-1i+t*Pr-1i+1;return(long(Pn0);函数功能介绍:此函数为德卡斯特里奥算法函数。在绘制 Bezier曲线时,需调用两次此函数,分别关于 x 方向和 y 方向上的调用。由 DrawBezier()函数调用。2. void C

4、My12View:DrawBezier()函数功能介绍:此函数为绘制 Bezier 曲线。绘制二维 Bezier 曲线,需要对 x 方向和 y 方向进行计算。这个函数就是解决这个问题,然后通过 OnRButtonDown(UINT nFlags,CPoint point)调用进行绘制。3 .void CMy12View:DrawCtrPolygon()函数功能介绍:此函数为绘制控制多边形。定义一个 CPen 型NewPen,和 CPen*型 PoldPen,进行绘制多边形,为了突出控制点,使用黑色填充边长为 4 个像素的正方形块代表控制点。4. void CMy12View:OnLButtonDown(UINT nFlags,CPoint point)函数功能介绍:此函数为鼠标左键按下函数。按下鼠标左键,将鼠标位置点作为控制点,并调用 CMy12View:DrawCtrPolygon()函数绘制控制多边形5. void CMy12View:OnRButtonDown(UINT nFlags,CPoint point)函数功能介绍:此函数为鼠标右键按下函数。通过一个 BOOL 型的变量,控制多边形的绘制,由鼠标右键绘制 Bezier 曲线。实验结果:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号