版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验题目二维基本图形生成的算法实现实验日期 指导教师 成绩 一、实验目的1、 通过实验,进一步理解和掌握DDA和中点算法,Bresenham算法;2、 掌握DDA和中点算法,中点算法,Bresenham算法算法生成直线段的基本过程。掌握中点画圆的算法。3、 通过编程,会在VC+环境下完成用DDA、中点算法实现直线段的绘制和中点算法实现圆的绘制。二、实验内容1、 用DDA算法或中点(Besenham)算法实现直线段的绘制。2、 用中点(Besenham)算法实现椭圆或圆的绘制。三、实验步骤1、 算法、原理清晰,有详细的设计步骤; 2、 依据算法、步骤或程序流程图,用VC+语言编写源程序;3、 编
2、辑源程序并进行调试;4、 进行运行测试,并结合情况进行调整;5、 对运行结果进行保存与分析;6、 打印源程序或把源程序以文件的形式提交;7、 按格式书写实验报告。四、实验数据1、用DDA算法实现直线段的绘制实验源代码void CDDAView:LineDDA(int x0, int y0, int x1, int y1, int color)CDC* pDC=GetDC( );int x;float dy,dx,y,m;dx=x1-x0;dy=y1-y0;m=dy/dx;y=y0;for(x=x0;x<=x1;x+)pDC->SetPixel(x,(int)(y+0.5),colo
3、r);y+=m;ReleaseDC(pDC);ondraw调用:void CDDAView:OnDraw(CDC* pDC)CDDADoc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native data hereLineDDA(50,55,500,120,123);试验结果:2、用中点(Besenham)算法实现椭圆或圆的绘制。源代码:void CBesenhamView:BresenhmaCircle(int xc, int yc, int r, int color)CDC *pDC=GetDC()
4、;int x=0,y=r,p=3-2*r;while(x<y)pDC->SetPixel(xc+x,yc+y,color);pDC->SetPixel(xc-x,yc+y,color);pDC->SetPixel(xc+x,yc-y,color);pDC->SetPixel(xc-x,yc-y,color);pDC->SetPixel(xc+y,yc+x,color);pDC->SetPixel(xc-y,yc+x,color);pDC->SetPixel(xc+y,yc-x,color);pDC->SetPixel(xc-y,yc-x,c
5、olor);if(p<0) p+=4*x+6;elsep+=4*(x-y)+10;y-;x+;if(x=y)pDC->SetPixel(xc+x,yc+y,color);pDC->SetPixel(xc-x,yc+y,color);pDC->SetPixel(xc+x,yc-y,color);pDC->SetPixel(xc-x,yc-y,color);pDC->SetPixel(xc+y,yc+x,color);pDC->SetPixel(xc-y,yc+x,color);pDC->SetPixel(xc+y,yc-x,color);pDC-&
6、gt;SetPixel(xc-y,yc-x,color);ReleaseDC(pDC);ondraw函数调用:void CBesenhamView:OnDraw(CDC* pDC)CBesenhamDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);BresenhmaCircle(200,200,100,120);/ TODO: add draw code for native data here试验结果:实验题目图形的裁剪实验日期 指导教师 成绩 一、实验目的1、 通过实验,进一步理解和掌握Cohen_Sutherland 裁剪算法;2、 掌握用Cohe
7、n_Sutherland 裁剪算法裁减多边形的基本过程3、 通过编程,会在VC+环境下用Sutherland_Hogman 算法编程实现用矩形窗口对的裁剪。二、实验内容用Cohen_Sutherland 算法编程实现用矩形窗口对直线的裁剪。三、实验步骤1、 算法、原理清晰,有详细的设计步骤; 2、 依据算法、步骤或程序流程图,用VC+语言编写源程序;3、 编辑源程序并进行调试;4、 进行运行测试,并结合情况进行调整;5、 对运行结果进行保存与分析;6、 打印源程序或把源程序以文件的形式提交;7、 按格式书写实验报告。四、实验数据实验源代码void CClipView:OnLButtonDown
8、(UINT nFlags, CPoint point) / TODO: Add your message handler code here and/or call defaultCDC* pDC=CWnd:GetDC();/CView:OnLButtonDown(nFlags, point);Rect rect;int x,y;x=point.x;y=point.y;rect.xmin=x-100;rect.xmax=x+100;rect.ymin=y-100;rect.ymax=y+100; float x0=0,y0=0,x1=400,y1=400; /DrawLine(x0,y0,x1
9、,y1,pDC); Clip(x0,y0,x1,y1,&rect,pDC); ReleaseDC(pDC);void Clip(float x0,float y0,float x1,float y1,Rect *rect,CDC *pDC)bool accept,done;accept=FALSE;done=FALSE;OutCode code0,code1;OutCode *outCode;float x,y;CompOutCode(x0,y0,rect,&code0);CompOutCode(x1,y1,rect,&code1);doif(code0.all=0&a
10、mp;&code1.all=0) accept=TRUE;done=TRUE;else if(code0.all&code1.all)!=0)done=TRUE;elseif(code0.all!=0)outCode=&code0;elseoutCode=&code1;if(outCode->left)y=y0+(y1-y0)*(rect->xmin-x0)/(x1-x0);x=(float)rect->xmin;else if(outCode->top)x=x0+(x1-x0)*(rect->ymax-y0)/(y1-y0);y=
11、(float)rect->ymax;else if(outCode->right)y=y0+(y1-y0)*(rect->xmax-x0)/(x1-x0);x=(float)rect->xmax;else if(outCode->bottom)x=x0+(x1-x0)*(rect->ymin-y0)/(y1-y0);y=(float)rect->ymin;if(outCode->all=code0.all)x0=x;y0=y;CompOutCode(x0,y0,rect,&code0);elsex1=x;y1=y;CompOutCode(
12、x1,y1,rect,&code1);while(!done);if(accept)DrawLine(int)x0,(int)y0,(int)x1,(int)y1,pDC,1);实验结果:实验题目几何图形变换实验实验日期 指导教师 成绩 一、实验目的1、 通过实验,运用计算机图形学的知识、原理和算法;2、 掌握二维和三维图形几何变换;3、 通过使用VC+编程环境实现图形几何变换;二、实验内容1、 在VC+编程环境下建立二维平面图形(长方形)实现其缩放、平移、旋转几何变换;2、 在VC+编程环境下建立三维立方体,实现缩放、平移、旋转等几何变换,。三、实验步骤1、 算法、原理清晰,有详细的
13、设计步骤; 2、 依据算法、步骤或程序流程图,用VC+语言编写源程序;3、 编辑源程序并进行调试;4、 进行特殊模式的运行测试,并结合情况进行调整;5、 对运行结果进行保存与分析;6、 打印源程序或把源程序以文件的形式提交;7、 按格式书写实验报告。四、实验数据1、 实验源代码void CJHBHView:OnDraw(CDC* pDC)CJHBHDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);PY(pDC,x1, y1, x2, y2, Tx, Ty);BBI(pDC, x1, y1, x2, y2, Sx, Sy);XZ(pDC, x1, y1,
14、x2, y2, a);/ TODO: add draw code for native data herevoid CJHBHView:PY(CDC *pDC,int x1, int y1, int x2, int y2, int Tx, int Ty)int x3,y3,x4,y4;x3=x1+Tx;y3=y1+Ty;x4=x2+Tx;y4=y2+Ty;pDC->MoveTo(x1,y1);pDC->LineTo(x2,y2);pDC->MoveTo(x3,y3);pDC->LineTo(x4,y4);void CJHBHView:BBI(CDC *pDC,int x
15、1, int y1, int x2, int y2, float Sx, float Sy)int x3,y3,x4,y4;x3=x1*Sx;y3=y1*Sy;x4=x2*Sx;y4=y2*Sy;pDC->MoveTo(x3,y3);pDC->LineTo(x4,y4);void CJHBHView:XZ(CDC *pDC,int x1, int y1, int x2, int y2,double a)int x3,y3;double rad=0.0174533;double alpha,alpha1,c,s;alpha1=alpha*rad;c=cos(alpha1);s=sin
16、(alpha1);x3=x2*c-y2*s;y3=y2*c+x2*s;pDC->MoveTo(x1,y1);pDC->LineTo(x3,y3);2、 实验结果实验题目BEZIER曲线和B样条曲线的绘制实验日期 指导教师 成绩 一、实验目的1、 通过实验,进一步理解和掌握生成BEZIER曲线的算法;2、 掌握BEZIER曲线的基本生成过程;3、 通过编程,会在VC+环境下编程实现三次BEZIER曲线的绘制;4、 通过实验,进一步理解和掌握生成B样条曲线的算法;5、 掌握B样条曲线的基本生成过程;6、 通过编程,会在VC+环境下编程实现三次B样条曲线的绘制。二、实验内容1、 编程实现
17、三次BEZIER曲线的绘制;2、 编程实现三次B样条曲线的绘制。三、实验步骤1、 算法、原理清晰,有详细的设计步骤; 2、 依据算法、步骤或程序流程图,用VC+语言编写源程序;3、 编辑源程序并进行调试;4、 进行特殊模式的运行测试,并结合情况进行调整;5、 对运行结果进行保存与分析;6、 打印源程序或把源程序以文件的形式提交;7、 按格式书写实验报告。四、实验数据实验源代码1. 绘制BEZIER曲线:void CBezierView:DrawBezier()CClientDC dc(this);double x,y;int rate=800,n;n=CtrlPoint-1;for(doubl
18、e t=0;t<=1;t+=1.0/rate)x=0;y=0;for(int i=0;i<=n;i+)x+=pti.x*Cnk(n,i)*pow(t,i)*pow(1-t,n-i);y+=pti.y*Cnk(n,i)*pow(t,i)*pow(1-t,n-i);dc.SetPixel(ROUND(x),ROUND(y),RGB(0,0,255);2绘制B样条曲线:void CCgView:OnBSpline() CClientDC dc(this);double x,y,Step,t,t2,t3,F03,F13,F23,F33;Step=0.1;for(int i=0;i<a-1;i+)t=0.0;dot2=t*t;t3=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖南省邵阳市邵东市223-2024学年高一下学期期末考试生物试题2
- 2024年道路运输企业主要负责人证考试题库
- 第14课 第一次世界大战与战后国际秩序 课件高三统编版(2019)必修中外历史纲要下一轮复习
- 创新高三一轮复习选考总复习信息技术讲义必修2第一章多媒体技术基础
- 四川省绵阳市高三下学期第三次诊断性考试语文试题
- 人教版高中生物必修2第3章第2节DNA分子的结构(测)(学生版)
- 世界在掌中头条看
- ktv保安管理制度及岗位职责(共5篇)
- 2024年长期战略合作协议范本
- 2024年塔城办理客运从业资格证2024年试题
- 红色教育典型案例(3篇模板)
- 2024年二级制图员技能理论考试题库大全-上(单选题)
- 2024中国中煤招聘笔试冲刺题(带答案解析)
- 2024山西大同市平城区司法协理员招聘笔试参考题库含答案解析
- 文艺复兴运动省公开课一等奖新名师课比赛一等奖课件
- 第一章 追求远大理想 坚定崇高信念课件
- 停车场租赁服务方案(技术方案)
- 译林版五年级上册英语期中调研测试卷(含答案)
- 软件模块化设计与开发标准与规范
- 2023年易助ERP系统-界面操作培训教程
- (正式版)SHT 3223-2024 石油化工给水排水泵站设计规范
评论
0/150
提交评论