欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    案例二十八 Sierpinski海绵.ppt

    • 资源ID:67584834       资源大小:673KB        全文页数:46页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    案例二十八 Sierpinski海绵.ppt

    目录目录退出退出目录目录本案例知识要点使用MFC框架提供的View类进行函数定义和声明递归算法的设计和使用图形的着色和输出案例二十八案例二十八 Sierpinski海绵海绵第页 共46页目录目录退出退出目录目录一、案例需求案例描述l在1915年1916年期间,波兰数学家Sierpinski构造出一个千疮百孔的Sierpinski海绵。其形成原理是将一个如图(a)所示的立方体沿其各个面等分为9个小立方体,舍弃位于立方体中心的一个小立方体以及位于立方体六个面中心的各个小立方体,如图(b)所示。将20个小立方体继续按相同的方法分割并舍弃位于立方体中心和平面中心处的更小的立方体,就能得到中间有大量空隙的Sierpinski海绵,分别如图(c)、(d)、(e)所示。l试编程实现。第页 共46页目录目录退出退出目录目录案例效果图(a)n0(b)n1(c)n2(d)n3(e)n4第页 共46页目录目录退出退出目录目录功能说明l不需要定义新类,利用MFC已有的View类,实现递归算法。l根据输入的不同递归深度,绘制相应的海绵。l将完成的图形正面显示为红色,顶面显示为绿色,右面显示为蓝色。第页 共46页目录目录退出退出目录目录二、案例分析本案例主要讲解如何使用MFC已有的SpongeView类,在扩展名为.h的文件中进行函数和变量的声明,在.cpp文件中进行函数的定义。另外本案例讲解了图形绘制方法。Sierpinski海绵是分形立体,具有自相似性。其生成元是将立方体分成27个小立方体,挖去立方体六个面中心的小立方体以及位于立方体中心的一个小立方体,共挖去7个小立方体,如图所示。Sierpinski海绵图形的递归是通过反复用生成元来取代每一个小正方形而建立起来的。第页 共46页目录目录退出退出目录目录海绵生成元 第页 共46页目录目录退出退出目录目录每个立方体在图形显示上是由前面、顶面和右面3个面构成的。设前面的正方形的左上角点为(x,y),边长为d,对于顶面和右面,由于其为平行四边形,其夹角为45的斜边的水平投影DXdcos(/4),垂直投影DYdsin(/4)。因为DXDY,所以可全部以DX代替。第页 共46页目录目录退出退出目录目录对于前面,顺时针方向的4个顶点为:(x,y),(),(),()。对于顶面,顺时针方向的4个顶点为:(x,y),(),(),()。对于右面,顺时针方向的4个顶点为:(),(),(),()。第页 共46页目录目录退出退出目录目录为了进行递归,需要计算20个小立方体的左上角坐标。对于上层的8个小立方体,按照画家算法对小立方体进行编号。第页 共46页目录目录退出退出目录目录第页 共46页目录目录退出退出目录目录对中层的4个小立方体进行编号。第页 共46页目录目录退出退出目录目录对下层的8个小立方体进行编号。第页 共46页目录目录退出退出目录目录三、案例设计 1SpongeView类的设计 (1)数据成员 double x,y,d;正方形的左上角点为(x,y),正方形边长为d。int n;递归深度。(2)函数成员 void Cubicf(double x,double y,double d);绘制立方体前面。void Cubict(double x,double y,double d);绘制立方体顶面。void Cubicr(double x,double y,double d);绘制立方体右面。第页 共46页目录目录退出退出目录目录l在文件视图的Source Files目录下找到SpongeView.h文件并双击打开,添加变量成员和成员函数的声明,如图所示。l在文件视图的Source Files目录下找到SpongeView.cpp文件并双击打开,添加成员函数的定义。第页 共46页目录目录退出退出目录目录添加变量成员和成员函数的声明 第页 共46页目录目录退出退出目录目录2对话框的设计l在资源视图Resource View中右击Dialog选项,选择Insert Dialog命令,在对话框内添加静态文本框Static Text和文本框Edit Box控件并修改属性,Edit控件的ID为IDC_EDIT1,对话框的设计结果如图所示。第页 共46页目录目录退出退出目录目录对话框的设计结果 第页 共46页目录目录退出退出目录目录l双击对话框,弹出Adding a class对话框,保持默认值添加一个新类Creat a new class,单击【OK】按钮。在弹出的对话框中填写对话框类名CInputDlg,单击【OK】按钮。在“查看”菜单下选择Class Wizard命令,单击Member Variable标签。修改成员变量的名称和类型。其中IDC_EDIT1的成员变量名为m_n,类型为int,代表递归深度,单击【确定】按钮退出。设计结果如图所示。第页 共46页目录目录退出退出目录目录对话框类成员变量的设计结果 第页 共46页目录目录退出退出目录目录 3菜单设计l在资源视图Resource View中单击Menu目录,双击IDR_MAINFRAME选项,修改命令,设置菜单Sponge的ID为ID_MENUSponge。从“查看”菜单中打开类向导MFC ClassWizard,在Object IDs列表框中选择ID_MENUSponge选项,在Class name下拉列表框中选择CSpongeView选项,在Message列表框中选择COMMAND选项后,单击【Add Function】按钮,弹出对话框,默认菜单成员函数的名称为OnMENUSponge(),单击【OK】按钮,则在Member functions列表框中添加了成员函数,该函数是CSponge View类的成员函数,单击【Edit Code】按钮可以对函数进行编辑。第页 共46页目录目录退出退出目录目录菜单调用流程第页 共46页目录目录退出退出目录目录四、案例实现第页 共46页目录目录退出退出目录目录第页 共46页目录目录退出退出目录目录第页 共46页目录目录退出退出目录目录第页 共46页目录目录退出退出目录目录第页 共46页目录目录退出退出目录目录第页 共46页目录目录退出退出目录目录第页 共46页目录目录退出退出目录目录第页 共46页目录目录退出退出目录目录第页 共46页目录目录退出退出目录目录第页 共46页目录目录退出退出目录目录第页 共46页目录目录退出退出目录目录第页 共46页目录目录退出退出目录目录第页 共46页目录目录退出退出目录目录第页 共46页目录目录退出退出目录目录第页 共46页目录目录退出退出目录目录第页 共46页目录目录退出退出目录目录第页 共46页目录目录退出退出目录目录第页 共46页目录目录退出退出目录目录第页 共46页目录目录退出退出目录目录第页 共46页目录目录退出退出目录目录第页 共46页目录目录退出退出目录目录第页 共46页目录目录退出退出目录目录五、案例总结与提高案例总结lExample2View.cpp文件中定义的菜单成员函数OnMENUTax()的功能非常简单,只是进行Sponge()函数的调用。在Sponge()函数中,先绘制立方体前面,再绘制顶面和右面,并分别用不同的颜色进行填充。l颜色填充是本例的难点,这里按照路径来填充。请认真体会以下语句:udc.BeginPath();udc.Polygon(right,4);udc.EndPath();udc.FillPath();u其中FillPath 函数使用现有的多边形填充模式填充多边形内部。第页 共46页目录目录退出退出目录目录案例提高l绘制Sierpinski地毯。其生成规则为:取一正方形,将其每条边三等分,正方形被等分为9个面积相等的小正方形,舍弃其中央的一个正方形;将剩下的8个小正方形按上面同样的方法继续分割,并同样舍弃位于中间的那个小正方形,如此不断地分割与舍弃,就能得到中间有大量空隙的Sierpinski地毯。要求程序的运行结果如图所示。第页 共46页目录目录退出退出目录目录Sierpinski地毯 第页 共46页

    注意事项

    本文(案例二十八 Sierpinski海绵.ppt)为本站会员(s****8)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开