




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机图形学实验报告 计算机图形学课内实验计算机图形学课内实验 实验报告实验报告 班级 班级 姓名 姓名 学号 学号 日期 日期 2016 10 292016 10 29 计算机图形学实验报告 要要 求求 1 任选四个实验 直线的 任选四个实验 直线的 DDA 算法 直线的算法 直线的 Bresenham 画画 线算法 中点圆算法 中点椭圆算法 之一来写 线算法 中点圆算法 中点椭圆算法 之一来写 2 实验报告必须上交书面形式 打印好 实验报告必须上交书面形式 打印好 11 月月 8 日前以班日前以班 级为单位交到西一楼级为单位交到西一楼 820 房间 房间 计算机图形学实验报告 一 实验目的及要求一 实验目的及要求 1 11 1 实验目的 实验目的 通过上机编程 实践计算机图形学课上所讲解的各种算法 完成基本的椭圆的绘制 进一步熟悉课上所讲解的算法 中点椭中点椭 圆算法圆算法 1 21 2 实验要求 实验要求 以绘图区域中心为 0 0 点 1 要求能够输入任意椭圆中心坐标 和参数和的 2 值 二 实验环境二 实验环境 VS2010 MFC C 三 实验内容三 实验内容 3 13 1 上机实践准备上机实践准备 由于实验要求实现中点椭圆算法且最好能有图形化界面进行所 需的显示 所以我决定采用 C 语言进行算法的编程 然后有 MFC 实 现交互式界面 首先 在 VS2010 中建立一个 MFC 工程和一个 Win32 控制台程序工程 3 23 2 设定画图窗口的坐标原点设定画图窗口的坐标原点 由于计算机默认左上角为坐标原点 0 0 这样的设定不符合我 们实验中对原点的要求 因此需要编写相关的函数对原点进行平移 使其恰好位于屏幕的正中央 计算机图形学实验报告 int transx int x return x 325 int transy int y return 225 y 这两个函数实现的功能就是完成坐标的平移 使屏幕上显示的 坐标系和我们日常用的坐标系一致 3 33 3 建立坐标系的建立建立坐标系的建立 接下来 按照调整后的坐标系 编写程序绘制坐标系 建立后 的坐标系如下图所示 3 43 4 基本算法的实现基本算法的实现 在建立完坐标系之后 就可以根据课上所学的中点椭圆算法 编程实现在坐标系中绘制任意的椭圆 详细描述见第四节 计算机图形学实验报告 3 53 5 对程序的修改对程序的修改 在第一次进行测试后 我发现只要是椭圆的长轴半径和短轴半 径过大就会出现一定的失真 这是由于数据类型的设置不合适造成 溢出而产生的 如下图所示 为了改正这个错误 我重新调整了数据类型 选择用 long 型去 存储数据 四 数据结构和算法描述四 数据结构和算法描述 4 14 1 中点椭圆算法的描述中点椭圆算法的描述 首先在程序中输入和 并且得到椭圆 假设中心在原点 上的第一个点 0 0 0 设定算法中的决策参数为 计算区域 1 中决策参数的初始值 0 2 1 4 2 在区域 1 中的每一个 位置 从开始 完成下列测试 如 0 果 沿中心在的椭圆的下一个点为 并且 0 0 0 1 1 2 2 1 否则 沿椭圆的下一个点为 并且 1 1 1 2 2 1 2 2 2 1 使用与区域 1 中相同的 和 增量进行计算 直到 0 根据椭圆的中心坐标确定其他三个象限中的对称点 将计算出的每个像素位置进行平移得到实际的轨迹点 在程序 中绘制出实际的点 4 24 2 数据结构的使用数据结构的使用 在本次实验中 并没有使用特殊的数据结构 主要使用最多的 就是数组 用来存储点坐标的信息 计算机图形学实验报告 五 调试过程及实验结果五 调试过程及实验结果 5 15 1 实验结果截图实验结果截图 此图为程序开始运行的 MFC 页面 程序正在绘制椭圆中心在原点 长轴为 100 短轴为 60 的椭圆 计算机图形学实验报告 完成绘制后的结果 测试绘制椭圆中心不在原点的椭圆 基本满足要求 计算机图形学实验报告 测试程序绘制竖椭圆 基本满足要求 六 总结六 总结 通过对上机实践的结果进行分析 可以发现所编写的程序基 本达到了该实验的要求 能够输入任意椭圆中心坐标 和参数 和的值 然后进行绘制 但是由于屏幕大小所限制 我的坐标 系的坐标范围只是 325 325 225 225 在这种情况下 并不能 测试更大坐标情况下该程序的正确性 所以仍然存在可以改进的空 间 总体上基本完成了实验的要求 通过本次上机实践 我对杨老师课上所讲的算法有了更深一 步的了解 更加熟悉了中点椭圆算法 并在实现这一算法的过程中 发现了一些自己在学习过程中没有考虑的问题 尝试着自己去解决 使自己的编程能力得到了提升 计算机图形学实验报告 七 附录 源程序清单 七 附录 源程序清单 中点椭圆算法实现的代码 中点椭圆算法实现的代码 include stdafx h include include include include int transx int x return x 325 int transy int y return 225 y void xy HWND hWnd GetConsoleWindow 获得控制台窗口的句柄 HDC hDC GetWindowDC hWnd float x x 1000 y x 225 k x y 325 y y 1000 设置坐标原点为 325 225 SetPixel hDC x x y x RGB 255 0 0 for k 0 k 1000 k x x SetPixel hDC x x y x RGB 40 40 40 for k 0 k 1000 k y y SetPixel hDC x y y y RGB 40 40 40 for x x 325 x x 700 x x x x 10 y y 225 for k 0 k0 y y y y 10 x x 325 for k 0 k 5 k 计算机图形学实验报告 x x SetPixel hDC x x y y RGB 40 40 40 for y y 225 y y 500 y y y y 10 x x 325 for k 0 k 5 k x x SetPixel hDC x x y y RGB 40 40 40 void ovalprint int Xcenter int Ycenter int x int y HWND hWnd GetConsoleWindow 获得控制台窗口的句柄 HDC hDC GetWindowDC hWnd int x temp y temp x temp transx Xcenter x y temp transy Ycenter y SetPixel hDC x temp y temp RGB 255 0 0 Sleep 30 x temp transx Xcenter x y temp transy Ycenter y SetPixel hDC x temp y temp RGB 255 0 0 Sleep 30 x temp transx Xcenter x y temp transy Ycenter y SetPixel hDC x temp y temp RGB 255 0 0 Sleep 30 x temp transx Xcenter x y temp transy Ycenter y SetPixel hDC x temp y temp RGB 255 0 0 Sleep 30 void printoval int Xcenter int Ycenter int Rx int Ry 中点椭圆算法 int Rx2 Rx Rx int Ry2 Ry Ry int twoRx2 2 Rx2 int twoRy2 2 Ry2 int p 计算机图形学实验报告 int x 0 int y Ry int px 0 int py twoRx2 y void ovalprint int int int int oval
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 轮胎购销合同协议版
- 残联免责协议书
- 灌浆施工协议书
- 转让家具工具合同协议
- 事业单位医院聘用合同
- 化工原料采购合同
- 原材料委托加工合同协议书
- 狗狗转赠协议书
- 展览会参展协议书
- 暂停执行协议书
- 下一代存储架构
- 新闻记者职业资格2024年笔试考试必做题有答案
- 消防监督检查一般流程和技术要点
- 私人公司用人合同协议
- 江苏南京历年中考作文题与审题指导(2002-2020)
- 2025江苏省环保集团(筹)招聘92人易考易错模拟试题(共500题)试卷后附参考答案
- 广东省2025年普通高等学校招生全国统一考试模拟测试(英语试题及答案)(广东二模)
- 西南大学马原试题及答案
- 《农村基层干部廉洁履行职责规定》知识培训
- 超市管理制度奖罚制度
- 浙江省绍兴市2025年高考二模数学试题(含答案)
评论
0/150
提交评论