




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南华大学计算机科学与技术学院 实验报告课程名称 计算机图形学实验名称DDA、Bresenham、Midpoint算法画直线一、实验目的及要求(1)理解窗口到视区的变换 (2)理解MFC创建工程实现动画的原理 (3) 学习MFC类库的概念与结构 (4)学习使用VC+编写Win32应用的方法(单文档,多文档,对话框)(5)学习使用MFC的图形编程软件环境:Microsoft studio visual C+ 6.0 MFC硬件:计算机二、实验内容(1)添加代码实现DDA算法画直线 (2)添加代码实现Bresenham算法画直线 (3)添加代码实现Midpointline画直线 (4) 添加代码实现画圆三、实验步骤 选择工作环境添加工程名选择程序类型 前几步省略全选默认值 选择resource-Menu添加不同函数画直线和圆 为每个函数建立类向导在fileview中打开source filesview.cpp输入各函数代码并编译运行无误四、实验源码/ 直线和圆View.cpp : implementation of the CMyView class/#include stdafx.h#include 直线和圆.h#include 直线和圆Doc.h#include 直线和圆View.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CMyViewIMPLEMENT_DYNCREATE(CMyView, CView)BEGIN_MESSAGE_MAP(CMyView, CView)/AFX_MSG_MAP(CMyView)ON_COMMAND(ID_DDALINE, OnDdaline)ON_COMMAND(ID_MIDPOINTLINE, OnMidpointline)ON_COMMAND(ID_BRESENHAMLINE, OnBresenhamline)ON_COMMAND(ID_MIDPOINTCIRCLE, OnMidpointcircle)/AFX_MSG_MAP/ Standard printing commandsON_COMMAND(ID_FILE_PRINT, CView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_DIRECT, CView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView:OnFilePrintPreview)END_MESSAGE_MAP()/ CMyView construction/destructionCMyView:CMyView()/ TODO: add construction code hereCMyView:CMyView()BOOL CMyView:PreCreateWindow(CREATESTRUCT& cs)/ TODO: Modify the Window class or styles here by modifying/ the CREATESTRUCT csreturn CView:PreCreateWindow(cs);/ CMyView drawingvoid CirclePoints(int x,int y,int color ,CDC* pDC )pDC-SetPixel(x,y,color);pDC-SetPixel(y,x,color);pDC-SetPixel(-x,y,color);pDC-SetPixel(y,-x,color);pDC-SetPixel(x,-y,color);pDC-SetPixel(-y,x,color);pDC-SetPixel(-x,-y,color);pDC-SetPixel(-y,-x,color);void Midpointcircle(int r,int color,CDC* pDC)int x,y;float d;x=0;y=r;d=1.25-r;CirclePoints(x,y,color,pDC);pDC-SetViewportOrg(200,100);while(x=y)if(d0)d+=2*x+3;else d+=2*(x-y)+5; y-;x+;CirclePoints(x,y,color,pDC);void DDA(int x0,int y0,int x1,int y1,int color,CDC* pDC)int x;float dx,dy,y,k;dx=x1-x0;dy=y1=y0;k=dy/dx;y=y0;for(x=x0;xSetPixel(x,int (y+0.5), color);y=y+k;void Bresenhamline(int x0,int y0,int x1,int y1,int color,CDC* pDC) int x,y,dx,dy;float k,e;dx=x1-x0;dy=y1-y0 ;k=dy/dx;e=-0.5;x=x0;y=y0;for(int i=0;iSetPixel(x,y,color); x=x+1;e=e+k; if(e=0) y+;e=e-1;void Midpointline(int x0,int y0,int x1,int y1,int color,CDC* pDC)int a,b,d1,d2,d,x,y;a=y0-y1;b=x1-x0;d=2*a+b;d1=2*a;d2=2*(a+b);x=x0;y=y0;pDC-SetPixel(x,y,color);while (xx1)if(dSetPixel(x,y,color);void CMyView:OnDraw(CDC* pDC)CMyDoc* pDoc = GetDocument();ASSERT_VALID(pDoc); Midpointcircle(100,RGB(0,168,168),pDC) ;DDA(0,0, 250,300,RGB (255,0,255),pDC); Midpointline(0,0, 500,200,RGB (255,255,0),pDC); Bresenhamline(0,0, 150,600,RGB (168,200,168),pDC);/ TODO: add draw code for native data here/ CMyView printingBOOL CMyView:OnPreparePrinting(CPrintInfo* pInfo)/ default preparationreturn DoPreparePrinting(pInfo);void CMyView:OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)/ TODO: add extra initialization before printingvoid CMyView:OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)/ TODO: add cleanup after printing/ CMyView diagnostics#ifdef _DEBUGvoid CMyView:AssertValid() constCView:AssertValid();void CMyView:Dump(CDumpContext& dc) constCView:Dump(dc);CMyDoc* CMyView:GetDocument() / non-debug version is inlineASSERT(m_pDocument-IsKindOf(RUNTIME_CLASS(CMyDoc);return (CMyDoc*)m_pDocument;#endif /_DEBUG/ CMyView message handlersvoid CMyView:OnDdaline() / TODO: Add your command handler code herevoid CMyView:OnMidpointline() / TODO: Add your command handler code herevoid CMyView:OnBresenhamline() / TODO: Add your command handler code herevoid CMyView:OnMidpointcircle() / TODO: Add your command handler co
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高血压参考试题及答案
- 高水平考试题目及答案
- 2025年合肥星辰建材工程合同
- 老年人社交需求与景观设计的关联性探讨
- 集成电路制造实践教学环境与实验平台建设
- 2025商务服务合同范本型电子格式
- 数据驱动的曲面景观建筑结构设计与施工流程优化
- 教育资源与行业资源协同利用的策略
- 涤纶生产建设项目风险评估报告
- 2025茶叶陈列包量合同协议书范本
- 咖啡基础培训课件
- 人才服务合同书
- 2025年工会财务大赛理论题库(附答案)
- 2025-2026学年统编版八年级上册道德与法治教学计划含教学进度表
- 矿井顶板事故防治课件
- 2025年中国电力投资集团校园招聘笔试题型分析及备考策略
- 抗生素课件教学课件
- 销售法律知识培训
- 中国慢性胃炎诊治指南(2022年)解读
- 糖尿病低血糖症诊疗指南
- 直升机发动机油封课件
评论
0/150
提交评论