文档介绍:

《计算机图形学课内实验》实验报告班级:姓名:学号:日期:一:实验目的及要求(1)理解和掌握计算机中的基本图形绘画算法,包括直线DDA算法,直线Bresenham算法,圆Bresenham算法,椭圆Bresenham算法。(2)学****MFC类程序编程,巩固提高编程能力。(3)提高调试纠错能力,提高自学能力。二:实验环境Windows8.1系统,VisualStudio2015社区版,MFC类库。三:实验内容直线的DDA算法实现。四:数据结构与算法描述(1)问题分析设直线方程y=kx+b,该算法从直线端点(x1,y1)开始画点,画到(x2,y2)为止,分|k|<=1和|k|>1两种情况。|k|<=1时,以横坐标为步进,x每次加1或-1(取决于x1小于x2还是大于x2),y每次加k(k为正数或负数),y以浮点数计算,画点时取整形数,画到另一端点为止。|k|>1时,方程改为x=y/k-b/k,以纵坐标为步进,y每次加1(取决于y1小于y2还是大于y2),x每次加1/k(1/k为正数或负数),x以浮点数计算,画点时取整形数,画到另一端点为止。(2)C++代码表示的算法概述:该程序在对话框中输入(x1,y1)(x2,y2)坐标,点击确定后在用户区画线(使用消息处理程序)。画线算法为程序核心,如下:CDialog::OnOK();UpdateData(TRUE);//将输入对话框的数据送入变量,该对话框类包含四个成员变量://m_x1,m_y1为第一个点坐标,m_x2,m_y2为第二个点坐标CDC*p=k;//创建CDC对象指针,用于调用画点函数p->(683,300);//坐标轴提前画好,原点在(683,300)inti,x=m_x1,y=m_y1;floatxi,yi,st,dx=m_x2-m_x1,dy=m_y2-m_y1,xf=(float)x,yf=(float)y;st=abs(dx);//设定步进,以下三行代码确定横坐标差和纵坐标差中较大的,abs()为绝对值函数if(abs(dx)SetPixel(CPoint(x,-y),RGB(255,0,0));//画初始点,mfc坐标系y轴正方向朝下for(i=1;i<=st;i++){ xf+=xi; yf+=yi;//用浮点数计算,否则带入画点时小数部分始终被舍去,使得整数无法增加 x=xf; y=yf; p->SetPixel(CPoint(x,-y),RGB(255,0,0));//循环画点 Sleep(10);}(3)执行结果事例输入:绘制结果:(4)遇到的问题和解决手段①在编写界面时不知道如何实现在菜单点击后出现上图所示对话框,查询得知需设置消息处理程序打开对话框。②对话框点击确定后仅仅对话框消失不画线,研究后发现需在其他文件内声明函数。③画线时发现只能画出平行于x轴或y轴的线,研究后发现画点时不能用整形数计算下一个点的位置,而应该用浮点数计算。六:总结心得体会:编写程序时在建立界面和对话框,让程序协调运行方面耗费了较大时间精力,绘制算法部分则相对简单。本次实验,让我对各类绘制算法的原理有了较好的认识,了解了计算机内绘制的方式。除了学****到计算机内的绘制算法以外,还巩固了编程知识,学****了文件协调工作的手段,学****到界面的设计和运行方式。改进意见:本程序无法自行控制线色,应当再编写程序使得使用者可以自行控制线色,时间仓促未能完成。七:附录(源程序清单)有重要改动的相关文件共计10个,包括MainFrm.h,MFCApplication3.h,MFCApplication3Doc.h,MFCApplication3View.h,Clinedda.h五个头文件及同名源文件。(MFCApplication3为工程名,8个文件内含有直线Bresenham算法,圆Bresenham算法,椭圆Bresenham算法的使用,这里未给出)(1)MainFrm.h//MainFrm.h:CMainFrame类的接口//#pragmaonceclassCMainFrame:FrameWnd{ protected://仅从序列化创建 CMainFrame(); DECLARE_DYNCREATE(CMainFrame)//特性public://操作public://重写public: virtualBOOLPreCreateWindow(CREATESTRUCT&cs);//实现public: virtual~CMainFrame();#ifdef_DEBUG virtualvoidAssertValid()const; virtualvoi

内容来自淘豆网www.taodocs.com转载请标明出处.

西安交通大学计算机图形学,西安交大计算机图形学实验报告材料.doc相关推荐

  1. 浙江大学Linux程序设计报告,浙江大学Linux程序设计实验报告材料.doc

    实用文档 文案大全 Linux程序设计实验报告1 --操作系统基本命令使用 一.实验目的 1.通过对Emacs.vi.vim.gedit文本编辑器的使用,掌握在Linux环境下文本文件的编辑方法: 2 ...

  2. 计算机图形学二维图形基本变换实验原理,江苏大学-计算机图形学第三次实验报告-二维图形变换...

    <江苏大学-计算机图形学第三次实验报告-二维图形变换>由会员分享,可在线阅读,更多相关<江苏大学-计算机图形学第三次实验报告-二维图形变换(13页珍藏版)>请在人人文库网上搜索 ...

  3. 计算机组成原理设计性实验,《计算机组成原理》设计性实验报告.doc

    <计算机组成原理>设计性实验报告 华北科技学院计算机学院设计性实验 实 验 报 告 课程名称 计算机组成原理B 实验学期 2013 至 2014 学年 第 一 学期 学生所在院部 计算机学 ...

  4. 计算机组成原理上机实验报告.doc,计算机组成原理第二次上机实验报告.doc

    <计算机组成原理第二次上机实验报告.doc>由会员分享,提供在线免费全文阅读可下载,此文档格式为doc,更多相关<计算机组成原理第二次上机实验报告.doc>文档请在天天文库搜索 ...

  5. 大学计算机基础网络配置实验报告答案,大学计算机基础实验报告2.doc

    大学计算机基础实验报告2.doc 姓名成瑞峰 班级B130506 学号B13050621洛阳理工学院实验报告系别计算机系班级B130506学号B13050621姓名成瑞峰课程名称大学计算机基础实验日期 ...

  6. 电大工商管理计算机考试,东方电大工商管理专科计算机期末复习应用基础实验报告...

    <东方电大工商管理专科计算机期末复习应用基础实验报告>由会员分享,可在线阅读,更多相关<东方电大工商管理专科计算机期末复习应用基础实验报告(7页珍藏版)>请在人人文库网上搜索. ...

  7. 计算机学院算法实验报告,四川大学计算机学院数据结构与算法分析实验报告

    四川大学计算机学院数据结构与算法分析实验报告 (61页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 21.9 积分 <数据结构与算法>课程设计 ...

  8. 计算机基础和综合实验,计算机基础与综合编程实验报告.doc

    计算机基础与综合编程实验报告 学号 <计算机基础与综合编程实验>报告 学 院计算机科学与技术学院专 业计算机类班 级姓 名指导教师 日期 1 实验目的 通过迭代式开发,深入掌握C语言的文件 ...

  9. 计算机辅助设计与制造上机实验报告,计算机辅助设计与制造上机实验报告.doc...

    计算机辅助设计与制造上机实验报告 <计算机辅助设计与制造> 上机实验报告 学 生: 学 号: 课程教师: 专业班级: 机械工程学院 实践目的 熟悉三维建模: 了解CAD/CAM及数控加工的 ...

最新文章

  1. Go 语言编程 — 高级数据类型 — Slice 切片
  2. SDCC 2015架构专场札记:一线互联网公司的架构实践
  3. 文献学习(part78-A)--A Survey of Clustering Algorithms for Big Data: T axonomy Empirical Analysis
  4. 微信小程序中处理 获取用户地址的回调
  5. mpvue使用vant Weapp运行npm run build命令打包后失效
  6. amazeui学习笔记二(进阶开发2)--Web组件简介Web Component
  7. Apache 与 Tomcat 整合
  8. leetcode 292 NimGame
  9. 计算机网络课程设计 学校园网设计
  10. 车辆路径问题VRPTW之四【节约里程法ClarkWright算法】
  11. PrestaShop加速11招立刻加速PrestaShop外贸电子商务网站无额外插件
  12. 信息安全-应用安全-SAST、DAST、IAST
  13. 【民大Linux课件】Linux的基础操作1
  14. 2021-10-19 SAP 创建会计凭证 BTE替代利润中心
  15. 商标主要特征是什么?商标注册申请流程是什么?
  16. LeetCode不浪费原料的汉堡制作方案
  17. CSS面试须知--选择器
  18. 支持DoH的DNS服务器,使用 Docker 自建支持 DoH、DoT 的 DNS 服务器
  19. 唤醒计算机教案,智慧课堂教学软件常态化丨镇江中山路实验小学用 智慧“唤醒”课堂...
  20. 【宋红康 MySQL数据库 】【高级篇】【03】MySQL的数据目录

热门文章

  1. NYOJ-king VS king
  2. 【leetcode/力扣】176.第二高的薪水
  3. 沈阳微信二维码营销技巧(不得不看)
  4. 不装了,摊牌了、我们要搞事情
  5. two-stage目标检测算法介绍
  6. 【UML建模】(6) UML建模之状态机图
  7. qq怎么看linux教程,LinuxQQ教程 LumaQQ的安装和使用详细介绍
  8. Linux下C语言获取cpu使用率
  9. Lombok的最佳实践
  10. Office_00000