资源描述:
《bezier曲线的编程,实验报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划bezier曲线的编程,实验报告 《计算机图形学》实验4实验报告 实验题目:参数曲线绘制 实验内容:1圆的参数曲线绘制。 2显式数学曲线描绘程序。 3贝赛尔曲线绘制。 编写程序调用验证之。 参考资料:1 2 3 4数学曲线绘制.ppt和实验3的参考ppt 基本概念: 1、圆的参数曲线绘制:圆的参数曲线绘制就是按照圆的定义,利用步长,得在显示域上每一点的位置,然后绘制。圆是图形中经常使用的元素,圆被定义为所有
2、离一中心位置距离为给定值R的点集。 2、显示数学曲线描绘程序:显示曲线的绘制就是在已知的坐标系上,按照方程要求在固定的点画点,然后连接成一条线。目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 3、贝塞尔曲线的绘制:贝赛尔曲线的每一个顶点都有两个控制点,用于控制在顶点两侧的曲线的弧度。它是应用于二维图形应用程序的数学曲线。曲线的定义有四个点:起始点、
3、终止点以及两个相互分离的中间点。滑动两个中间点,贝塞尔曲线的形状会发生变化。 算法设计: 1、圆的算法设计:本例程体现的主要是圆的快速算法,这里的主要算法是: X=Xc+Rcost Y=Yc+Rsint0个点之间的线段,最后从最左节点绘制到最右节点坐标后结束绘制。体现在代码中就是: for(t=0;tMoveTo(coeff_x[0],coeff_y[0]);for(i=1;iLineTo(coeff_x[i],coeff_y[i]);}for(t=0;tSetPixel(x,y,RGB(0,0,0));} delt=/(flo
4、at)npoints; t=; for(i=0;iMoveTo((int)coeffx[i],(int)coeffy[i]); pDC->LineTo((int)coeffx[i+1],(int)coeffy[i+1]); } bezpoint(degree,npoints,coeffx,points1); bezpoint(degree,npoints,coeffy,points2);目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略
5、的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 for(i=0;iSetPixel((int)points1[i],(int)points2[i],RGB(123,123,123));} B样条曲线 voidCBView::bsp(intdegree,intl,float*coeff,float*knot,intdense,float*points,int*point_num) { inti,ii; floatu; *point_num=0; for(i=degree-1;ik
6、not[i]) for(ii=0;ii=i-degree+k+1;j--) { t1=(knot[j+degree-k]-u)/(knot[j+degree-k]-knot[j-1]); t2=; coeffa[j]=t1*coeffa[j-1]+t2*coeffa[j]; } returncoeffa[i+1]; } 主函数:目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安
7、保从业人员的业务技能及个人素质的培训计划 voidCBView::OnDraw(CDC*pDC) { CBDoc*pDoc=GetDocument(); ASSERT_VALID(pDoc); //TODO:adddrawcodefornativedatahere intk,n; intdegree,i,a; intdense=290,l=5; floatcoeffx[]={10,40,265,300,400,500,600}; floatcoeffy[]={20,130,160,90,300,100,300}; fl
8、oatpoints1[XX],points2[XX]; floatknot[]={0,0,0,0,0,1,2,2,2,2,2}; int*point_num; k=5,n=