




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
太原工业学院计算机工程系实 验 报 告课程名称计算机图形学班级实验日期姓 名学号实验成绩实验名称实验一 金刚石图案算法实验目的及要求 通过对MFC的学习,学会自定义二维坐标系、二维点类的定义、工程模板的建立、对话框的创建、自定义菜单和工具栏、调试方法、理解金刚石图案的算法。实验环境VC+ 6.0实验内容1) 自定义二维坐标系;2) 二维点类的定义方法;3) 对话框的创建和调试方法;4) 金刚石图案算法;5) 一维堆内存的分配与释放;6) 设计个性化的菜单项与工具栏;7) 对程序进行改善,使其更加完美。算法描述及实验步骤1菜单和工具按钮的设计 删除多余的菜单按钮,只保留三个即可,如下图所示: 2关于对话框的设计 4输入对话框的设计 5金刚石图案算法:1) 读入圆的等分点个数n与圆的半径r;2) 根据等分点的个数计算金刚石图案的等分角 3) 计算金刚石图案的起始角4) 将圆等分后的顶点坐标存储与数组P中;5) 设计一个二重循环,代表起点的外层整型变量i从i = 0循环到 i= n-2,代表终点的内层整型变量j从j=i+1循环到j=n-1.以pi为起点,以pj为终点连接各线段构成金刚石图案。调试过程及实验结果1程序开始运行界面:2点击绘图按钮开始绘图:3金刚石图案界面:总结通过对金刚石图案算法的学习,我理解、领会了一维动态数组内存的分配和释放方法,逐渐了解了MFC的神奇之处。懂得算法和能够实现它是两码事。尤其是对于MFC来说,某一个算法你很了解,但是到了真正去实现的时候就会发现很多的困难,出现一大堆的错误。因此,只有真正的去实现了才算懂了这个算法。附录程序核心代码如下所示:二维点类CP2 P2.h/ P2.h: interface for the CP2 class./#if !defined(AFX_P2_H_3A3FB2AE_1A86_441C_B418_E6BD1A317145_INCLUDED_)#define AFX_P2_H_3A3FB2AE_1A86_441C_B418_E6BD1A317145_INCLUDED_#if _MSC_VER 1000#pragma once#endif / _MSC_VER 1000class CP2 public:CP2();virtual CP2();public:double x;double y;#endif / !defined(AFX_P2_H_3A3FB2AE_1A86_441C_B418_E6BD1A317145_INCLUDED_)P2.cpp/ P2.cpp: implementation of the CP2 class./#include stdafx.h#include 122055141.h#include P2.h#ifdef _DEBUG#undef THIS_FILEstatic char THIS_FILE=_FILE_;#define new DEBUG_NEW#endif/ Construction/Destruction/CP2:CP2()x = 0;y = 0;CP2:CP2()函数Diamond()的实现void textView:Diamond()CDC *pDC=GetDC(); CRect Rect; GetClientRect(&Rect);pDC-SetMapMode(MM_ANISOTROPIC); pDC-SetWindowExt(Rect.Width(),Rect.Height();pDC-SetViewportExt(Rect.Width(),-Rect.Height();pDC-SetViewportOrg(Rect.Width()/2,Rect.Height()/2);Rect.OffsetRect(-Rect.Width()/2,-Rect.Height()/2);CPen NewPen,*pOldPen; NewPen.CreatePen(PS_SOLID,1,RGB(0,0,255);pOldPen=pDC-SelectObject(&NewPen); double Alpha,Theta; Theta=2*PI/n;Alpha=PI/2-Theta;for(int i=0;in;i+) pi.x = r*cos(i*Theta + Alpha);pi.y = r*sin(i*Theta + Alpha);for(i = 0;i = n - 2;i+)for(int j = i + 1;j MoveTo(Round(pi.x),Round(pi.y);pDC-LineTo(Round(pj.x),Round(pj.y);pDC-SelectObject(pOldPen);NewPen.DeleteObject();ReleaseDC(pDC); 函数 OnDrawpic()的实现void textView:OnDrawpic() / TODO: Add your command handler code hereCInputDlg
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【西安】陕西西安经济技术开发区管委会事业编制公办学校招聘175人笔试历年典型考题及考点剖析附带答案详解
- 罩生字教学课件
- 舞动的北京教学课件
- 美丽的彩带 教学课件
- 语法教学课件
- 转盘教学课件制作
- 敬人主题班会课件
- 教育收费政策课件
- 教育扶贫资助政策课件
- 文津图书奖活动方案
- 商场摊位购买合同协议
- 2024年泉州实验中学初一新生入学考试数学试卷
- 2025年第二届全国安康杯安全生产知识竞赛题库及答案(共190题)
- 护士法律法规知识培训课件
- DB11-T 2398-2025 水利工程巡视检查作业规范
- 2025年光伏行业上半年发展回顾与下半年形势展望
- 输血管理相关制度
- 2025至2031年中国纸巾用香精行业投资前景及策略咨询研究报告
- 老年性痴呆病人的护理与管理
- 无固定期限劳工合同通知书
- GB/T 45161-2024液氢容器用安全阀技术规范
评论
0/150
提交评论