混沌ICON图标绘制.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验三 一 上机题目: 实现ICON图标绘制 二 上机目的与要求 理解平面与屏幕的对应关系,掌握吸引子的构造原理与色带(color band)的制作方法。 熟悉ICON图标的两个计算公式,能够用计算机生成多幅且有不同对称形式的ICON图标档案。 三 思路及步骤 生成图标对称最基本的公式如下: F(z)=[λ+αzz+βRe(zn)+ωi]z+γzn-1 其中λαβω是实参,当ω=0时该公式具有Dn对称,当ω≠0时,该公式具有Zn对称。 利用编程语言实现平面上的点与屏幕像素坐标的对应函数,自定义调色板和色带分配的函数,编程实现点击次数累加器函数。 运用计算机语言写出ICON图标的计算公式,形成迭代函数,写出主函数,实行联调。利用Appendix A中的参数表中的参数,生成多幅ICON吸引子图形,进行简单调色,存图。 在VC6.0中新建一个工程ICON,建立对话框。再打开菜单,选Project——Add Project,新建一个C头文件,起名为Variable.h。 在Variable.h文件里定义调色板,需要迭代到的颜色定义在COLORREF colorlist[]结构体里。以函数fxynew(),利用生成图标对称的基本公式,计算迭代后新的x与y的值,分别赋给xnew和ynew,之后计算x点y点对应的坐标,并计算点击次数,击中一次加1,再根据点击次数着色。在ICONDlg.cpp里引用此头文件。 在ICON的对话框窗体里添加按钮“绘制吸引子”,“保存”,“退出”,编辑框“显示比例”,参数α,β,γ,ω,λ,以及“迭代次数”,“对称维数”。为编辑框添加相应的成员变量,实现通过调整参数,可以绘制出不同对称图形,并能调整输出比例的功能。α,β,γ,ω,λ等变量的初始值如下图(Emperors Cloak): 点击“绘制吸引子”,在对话框里绘制一个767*767的白色绘图区域,起始绘制点为(-0.234,-0.12345)。以函数fxynew(x1,y1,m_a,m_b,m_r,m_w,m_y,m_sd)获取输入的参数,生成的图形控制在(0,0),(768,768)区域中,每迭代一次,在当前x,y坐标添加一次colorlist里的颜色。迭代完成后,输出“绘图完毕,可以将图片保存”字样。 保存图片:可将白色区域里的图片保存为768*768的bmp图片。 相关代码: ICONDlg.cpp: CIconDlg::CIconDlg(CWnd* pParent /*=NULL*/) : CDialog(CIconDlg::IDD, pParent) { //{{AFX_DATA_INIT(CIconDlg) /*m_a = 5.0; m_b = 1.5; m_r = 1.0; m_w = 0.0; m_y = -2.7;*/ /*m_a = 1.0; m_b = -0.1; m_r = 0.167; m_w = 0.0; m_y = -2.08;*/ /*m_a = -1.0; m_b = 0.1; m_r = -0.82; m_w = 0.12; m_y = 1.56;*/ /*m_a = 1.806; m_b = 0.0; m_r = 1.0; m_w = 0.0; m_y = -1.806;*/ /*m_a = 2.0; m_b = 0.0; m_r = 1.0; m_w = 0.1; m_y = -1.86;*/ /*m_a = -1.0; m_b = 0.1; m_r = -0.82; m_w = 0.12; m_y = 1.56;*/ m_a = -1.0; m_b = 0.1; m_r = -0.805; m_w = 0.0; m_y = 1.5; m_scale = 1.0; m_n = 1500000; m_sd = 3; //}}AFX_DATA_INIT // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME); } void CIconDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CIconDlg) DDX_Text(pDX, IDC_a, m_a); DDX_Text(pDX, IDC_b, m_b); DDX_Text(pDX, IDC_n, m_n); DDX_Text(pDX, IDC_r,

文档评论(0)

***** + 关注
实名认证
文档贡献者

本账号下所有文档分享可拿50%收益 欢迎分享

1亿VIP精品文档

相关文档