欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    计算机图形学课程设计实习报告文档格式.docx

    • 资源ID:8332688       资源大小:1.92MB        全文页数:34页
    • 资源格式: DOCX        下载积分:1金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要1金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    计算机图形学课程设计实习报告文档格式.docx

    1、7单击“完成”,创建了一项空的工程-绘图应用程序主框架。运行版本有两类:Debug、Release, 生成Debug解决方案步骤如下:1生成解决方案点击“生成-生成解决方案”, 生成了Debug版的可运行程序。2调试运行程序点击菜单“调试开始执行(不调试)”, 执行Debug版的可运行程序。结果如下:生成Release解决方案步骤如下:点击“生成-批生成”。2勾选“Release”,单击“生成”,生成可以独立于Visual C+ 2005外运行的.exe程序。3查看目录,sample.exe是Release版,单击即可以运行。运行结果:1弹出菜单设计器单击“解决方案管理器”窗口中的资源文件Sa

    2、mple.rc,弹出资源视图,2插入一项菜单双击“资源视图”中的“Menu”展开文件夹,双击“IDR_MAINFRAME”,弹出菜单设计器。右健单击菜单设计器的“帮助”,选择“新插入”,插入一项菜单。在新插入的菜单项的“Caption” 中输入“绘图”。3输入ID输入“打开”菜单项,输入“直线”菜单项,在“直线”菜单项下输入“DDA”菜单,“DDA”菜单的ID为ID_LINE_DDA。IDCaption功能ID_LINE_DDADDA用DDA发绘制直线4调出类视图窗口单击菜单“视图-类视图”, 在“解决方案管理器”窗口中出现“类视图”窗口。4生成菜单消息响应函数在类视图窗口,单击Csample

    3、0View类,单击事件按钮,5选择ID_LINE_DDA的COMMAND,添加OnLineDDA事件。6进入代码编辑器在void Csample0View:OnLineDda()中的 / TODO: 在此添加命令处理程序代码处输入的自己代码:AfxMessageBox(Hello World,MB_OK,NULL);7修改项目字符集属性选择“项目”菜单-属性-,弹出“属性”对话框,选择“配置属性 -常规-字符集”,改为“未设置”。8运行结果重新生成解决方案,运行结果如下。 在此添加命令处理程序代码处输入的代码:/ TODO: Add your command handler code here

    4、CClientDC *pdc=new CClientDC(this); CPen pen; pen.CreatePen(PS_DOT,1,RGB(255,0,0); CPen *oldpen=(CPen*)pdc-SelectObject(&pen);int x,y;y=100;for(x=100;xSetPixelV(x,y,RGB(255,0,0); pdc-DeleteDC();运行结果如下。四、 实验结果:创建绘图应用程序主框架结果应用程序编译运行结果五、 回答如下问题:解释以下每条命令的含义/定义一个指针类型的CClientDC对象,客户区设备上下文用于客/户区的输出,与特定窗口关联

    5、CPen pen;/定义一个画笔对象pen.CreatePen(PS_DOT,1,RGB(255,0,0);/赋予pen对象以风格CPen *oldpen=(CPen*)pdc-/pdc-/画出像素坐标为(x,y),风格为红色的一点六、 其它的实验内容:答:工具条按钮的添加七、 实验中发现的问题及你解决的方法:发现的问题:调试过程中出现如下错误解决的方法:重新生成解决方案,如还出现则多生成几次。实验一 直线的生成算法1理解DDA算法2理解中点Bresenham算法3理解改进的Bresenham算法4了解DDA和Bresenham算法的区别,以及生成图形的差异原因二、实验内容:设计DDA算法程序

    6、设计中点Bresenham算法程序改进的Bresenham算法添加函数:void DDALine(int Xa, int Ya, int Xb, int Yb)/DDA算法void CSampleView:DDALine(int Xa, int Ya, int Xb, int Yb) CClientDC *pdc=new CClientDC(this); float delta_x,delta_y; int dx,dy,steps,k; dx=Xb-Xa; dy=Yb-Ya; if(abs(dx)abs(dy) steps=abs(dx); else steps=abs(dy); delta_

    7、x=(float)dx/(float)steps; delta_y=(float)dy/(float)steps; x=Xa; y=Ya; for(k=1;k 添加事件响应函数:/ 消息响应函数DDA算法程序的设计画直线OnDdaLine() DDALine(100,100,300,300);void LineBresenhams(int Xa,int Ya,int Xb,int Yb)/Bresenhams算法程序的设计画直线的实现LineBresenhams(int Xa,int Ya,int Xb,int Yb) CClientDC *pdc=new CClientDC(this); i

    8、nt dx=abs(Xa-Xb); int dy=abs(Ya-Yb); int p=2*dy-dx; int twody=2*dy; int twodydx = 2*(dy-dx); int x,y,xend; if(XaXb) x=Xb; y=Yb; xend=Xa; else x=Xa;y=Ya; xend=Xb; while(xxend) x+; if(p0) e-=2*dx; /菜单响应函数生成直线ImproveBresenhams算法OnImprove() ImproveBresenhams(200,100,300,300);DDA算法的缺点是什么?DDA算法的缺点是:它的y和斜率

    9、k必须用浮点数表示,而且每一步都必须对y进行舍入取整,这不利于用硬件实现。添加工具栏按钮DDA,Bresenham,Bresenham改进画直线在SampleView.cpp中添加代码:ON_COMMAND(ID_BUTTONDDALine,OnDda)ON_COMMAND(ID_BUTTONBresenham,OnBresenham)ON_COMMAND(ID_BUTTONImprovedBresenham,OnImprovedbresenham)调试点击工具栏按钮查看效果。在生成Release文件时出现错误,但调试时没有错误。查了资料,现在还没有解决。实验二:圆和椭圆的生成算法 B401机

    10、房 时间: 星期四 节次: 第一大节 1、了解Bresenham法生成圆和椭圆方法2、掌握Bresenham生成圆和椭圆算法的基本思想、推导和算法Bresenham法生成圆Bresenham法生成椭圆步骤1:添加菜单“实验二”,子菜单如下:圆 ID_Circle步骤2:在SampleView类中添加函数bool CircleLine(x1,y1,r)实现代码:bool CSampleView:CircleLine(int x1, int y1, int r) int x,y,d; x = 0; y = r; d = 3 - 2 * r; while(x y) SetPixelV(x+x1,y+

    11、y1,RGB(255,0,0);SetPixelV(y+x1,x+y1,RGB(255,0,0);SetPixelV(-y+x1,x+y1,RGB(255,0,0);SetPixelV(-x+x1,-y+y1,RGB(255,0,0);SetPixelV(-x+x1,y+y1,RGB(255,0,0);SetPixelV(-y+x1,-x+y1,RGB(255,0,0);SetPixelV(y+x1,-x+y1,RGB(255,0,0);SetPixelV(x+x1,-y+y1,RGB(255,0,0); if(d 0) d += 4 * x + 6; else d += 4 * (x - y

    12、) + 10; y -; x +; if(x = y) return true;步骤3;添加画圆菜单响应函数:OnCircle() CircleLine(200,200,100);步骤四:调试运行。椭圆:ID_Ellipse在SampleView类中添加函数void Ellipse(int x1,int y1,int a, int b)/ 画椭圆的函数Ellipse(int x1,int y1,int a, int b) float d1,d2; int x,y; x=0; y=b; d1=b*b+a*a*(-b+0.25);SetPixelV(x+x1 ,y+y1 ,RGB(255,0,0)

    13、;SetPixelV(-x+x1 ,-y+y1 ,RGB(255,0,0);SetPixelV(x+x1 ,-y+y1,RGB(255,0,0);SetPixelV(-x+x1 ,y+y1,RGB(255,0,0); while(b*b*(x+1)a*a*(y-0.5) if(d10) if(d2MoveTo(scx(0),scy(-ymax/2);LineTo(scx(0),scy(ymax/2);MoveTo(scx(-xmax/2),scy(0.0);LineTo(scx(xmax/2),scy(0.0); for(int x=0;=1;x=x+20) parallel(x,x/2);

    14、for (i=0;iMoveTo(scx(x2i),scy(y2i);LineTo(scx(x2i+1),scy(y2i+1);旋转函数的添加,在CSampleView类里添加旋转函数void Rotate();/ 旋转再依次添加辅助函数及变量public: int scx(double xj); int scy(double yj); double affinex(double x,double y,double d); double affiney(double x,double y,double d); void parallel(double dx,double dy); double f33; /成员变量 double xmax; double ymax; void rotate(double theta);在SampleView.cpp中依次实现他们,函数如下:/平移函数Pan() static double x1=0.


    注意事项

    本文(计算机图形学课程设计实习报告文档格式.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开