计算机图形学金刚石程序编码,计算机图形学金刚石算法实验 告.doc

实验成绩:

《计算机图形学》实验 告

班级: 1420561

专业: 软件工程

学 : 142056127

姓名: 马哲

2016年12月

《计算机图形学》课程实验 告(一)

班级

1420561

实验日期

2016.10.24

姓名

马哲

27

实验名称

金刚石图案算法

1. 自定义二维坐标系

2. 二维点类的定义方法

3. 对话框的创建及调用方法

4. 金刚石图案算法

5. 一维堆内存的分配和释放

6. 设计个性化的菜单项与工具栏

7. 创建Test工程模板

1. 设计菜单和工具栏按钮

(1.)设置菜单的ID

删除多余的菜单选项,只保留三个即可。

(2) 设置工具栏按钮

(3) 关联工具栏按钮与菜单项

(4) 设计应用程序图标

2. 设计“关于”对话框

3. 设计输入对话框

(1) 设计输入对话框界面

(2) 添加输入对话框类

(3) 为输入对话框的控件映射数据成员

m_n=30;

m_r=300.0;

代码为:

void CInputDlg::OnShowWindow(BOOL bShow, UINT nStatus)

{

CDialog::OnShowWindow(bShow, nStatus);

// TODO: Add your message handler code here

GetDlgItem(IDC_EDIT1)->SetFocus();

((CEdit*)GetDlgItem(IDC_EDIT1))->SetSel(0,-1);

}

4. 设计二维点类

新建类,CP2,修改二维点类的初始定义

在P2.h添加duble类x、y,在P2.cpp添加x=0,y=0;

5.设计CTestView类

(1) 添加“绘图”子菜单命令消息映射函数

(2) CTestView头文件设计

定义指针P,定义n,r,添加Diamond成员函数

(3) CTestView的源程序设计

(源程序在附录)

修改“绘图”子菜单命令消息映射函数的定义

void CTestView::OnDrawpic()

{

// TODO: Add your command handler code here

CInputDlg dlg;

if(IDOK==dlg.DoModal())

{

n=dlg.m_n ;

r=dlg.m_r ;

}

else

return;

RedrawWindow();

P=new CP2[n];

Diamond();

delete [] P;

}

实验结果如下:

输入对话框界面

等分点个数为30时:

等分点个数为10时:

教材中仅介绍了0

(核心源程序清单)

void CTextView::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->SetWindowOrg(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;iMoveTo(Round(P[i].x) ,Round(P[i].y));

pDC->LineTo(Round(P[j].x) ,Round(P[j].y));

}

}

pDC->SelectObject(pOldPen);

NewPen.DeleteObject();

ReleaseDC(pDC);

}

实验地点

专业软件实验室

指导教师

李丽亚

5

展开阅读全文

文章知识点与官方知识档案匹配,可进一步学习相关知识算法技能树首页概览34795 人正在系统学习中 相关资源:点石排名软件-快速提升关键字排名-电子商务工具类资源-CSDN文库

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年6月16日
下一篇 2021年6月16日

相关推荐