//美国队长的盾牌    CPen p1Pane(PS_SOLID,1,RGB(255,0,0));//创建画表盘的笔CBrush b1Pane(RGB(225,0,0));          //创建画表盘的刷子CBrush b1Pane(RGB(225,0,0));          //使用笔和刷子pDC->SelectObject(&p1Pane);pDC->SelectObject(&b1Pane);CRect rect;  GetClientRect(&rect);//获取客户端的矩形窗口int w = rect.Width()/2;int h = rect.Height()/2;CPoint center(w,h); //定义圆心int R = w<h?w:h;   //定义半径int x = center.x;    //得到圆心横纵坐标的数值int y = center.y;// 开始绘图pDC->Ellipse(x-R,y-R,x+R,y+R);               //画外圈CBrush b2Pane(RGB(255,255,255));           //定义刷子pDC->SelectObject(&b2Pane);                    //换白色刷子pDC->Ellipse(x-(R-(R*3)/13),y-(R-(R*3)/13),x+(R-(R*3)/13),y+(R-(R*3)/13));//画里圈pDC->SelectObject(&b1Pane);                   //换红色刷子pDC->Ellipse(x-(R-2*(R*3)/13),y-(R-2*(R*3)/13),x+(R-2*(R*3)/13),y+(R-2*(R*3)/13));//画里圈CBrush b3Pane(RGB(0,0,255));         pDC->SelectObject(&b3Pane);                  //换蓝色刷子pDC->Ellipse(x-(R*4)/12,y-(R*4)/12,x+(R*4)/12,y+(R*4)/12);//画里圈//CBrush b4Pane(RGB(0,0,0));         //´´½¨»­±íÅ̵ÄË¢×ÓCBrush b4Pane(RGB(255,255,255));pDC->SelectObject(&b4Pane);                    //换白色刷子//mPoint.x = x + int(hl*sin(hAngle*PI/180));//mPoint.y = y - int(hl*cos(hAngle*PI/180));const double PI = 3.1415926;int sR = (R*4)/12;   //small  Rint ssR = sR/2;     // small small RpDC->BeginPath();                        //建立路径,给五角星涂色pDC->MoveTo(x, y-sR);                //先算SR,再算SSR,不然会乱掉的pDC->LineTo(x + int(ssR*sin(36*PI/180)),y - int(ssR*cos(36*PI/180)));pDC->LineTo(x + int(sR*sin(72*PI/180)),y - int(sR*cos(72*PI/180)));pDC->LineTo(x + int(ssR*sin(108*PI/180)),y - int(ssR*cos(108*PI/180)));pDC->LineTo(x + int(sR*sin(144*PI/180)),y - int(sR*cos(144*PI/180)));pDC->LineTo(x + int(ssR*sin(180*PI/180)),y - int(ssR*cos(180*PI/180)));   pDC->LineTo(x + int(sR*sin(216*PI/180)),y - int(sR*cos(216*PI/180)));pDC->LineTo(x + int(ssR*sin(252*PI/180)),y - int(ssR*cos(252*PI/180)));pDC->LineTo(x + int(sR*sin(288*PI/180)),y - int(sR*cos(288*PI/180)));pDC->LineTo(x + int(ssR*sin(324*PI/180)),y - int(ssR*cos(324*PI/180)));pDC->LineTo(x, y-sR);        //构成闭合回路啊大哥pDC->EndPath();                   //路径结束//看的那篇博客代码写错了,那个人真是误人子弟,还是我自己改对的CRgn rgn;rgn.CreateFromPath(pDC);pDC->InvertRgn(&rgn);pDC->FillRgn(&rgn,&b4Pane);

一开始结果是:

后来仔细一想肯定哪里画错了,果然!!!!

结果对了!!!!

原因分析:

见下图所示,正确的路径是A--G--B--H--C--I--D--J--E--F--A(最后要回到A点)

然而我一开始做法是A--B---C--D--E--A,肯定就错了呀。

剩下的没什么好讲的,注释说得很清楚了,要注意的就是你要不断地去计算每个点的坐标,保证正确,用三角函数,高中学的。

我也算是完成了用MFC画美国队长盾牌的小目标了哈哈哈,之前好像学着别人用python画过一次???我忘记了。

参考资料:

都有错的地方,不过好歹给了我指导,唉。不知道他们是不是哪里抄来的

https://blog.csdn.net/u011467044/article/details/50488992?locationNum=11

https://blog.csdn.net/wang1025475397/article/details/9014241

用MFC画一个美国队长的盾牌相关推荐

  1. 用python 画一个美国队长盾牌

    好的,这是一个 Python 程序,可以画出一个美国队长盾牌的图像: import matplotlib.pyplot as plt# 创建画布 fig, ax = plt.subplots()# 绘 ...

  2. 【Python】-转载-画出美国队长的盾牌(重点五角星)

    一.效果图 二.五角星角度计算 三.源码  #!/usr/bin/env python #encoding: utf-8 #注意:从网页上复制时,有些空格字符不一致:实际运行时会报错,需要全部修改或替 ...

  3. 使用easyX插件 用C语言画一个美国队长盾牌-第九个程序20200618

    运行代码前请安装easyX图形库.easyX的图形库只支持C++.源文件的后缀一定要是CPP.闲话不多说,直接写代码 #include<stdio.h> #include<stdli ...

  4. 基于Python-turtle库绘制路飞的草帽骷髅旗、美国队长的盾牌、高达

    源码: #路飞骷髅 import turtle as t #黄底帽子 t.pu() t.goto(0,200) t.circle(-130,-80) t.pd() t.colormode(255) t ...

  5. 用Python Turtle库画一个萌化的蜘蛛侠

    你是从什么时候开始喜欢上漫威电影的?美国队长,钢铁侠,雷神? 我先入坑的是因为看了蜘蛛侠,小时候看完就幻想着什么时候自己也能成为一个英雄,我觉得第一代蜘蛛侠刻画得是最好的,也是给我印象最深刻的一代蜘蛛 ...

  6. 3DMAX建模入门:美国队长的盾牌图文教程,过程炒鸡详细(上)

    大家看漫威电影的时候,对里面的英雄角色是不是格外的崇拜呢,今天奶茶为大家带来的3D建模教程就是美国队长的盾牌教程!!! 这篇教程非常的详细,所以就把它分成了上下两个部分,最近看到很多小伙伴在学习的过程 ...

  7. turtle之绘制美国队长的盾牌

    turtle之绘制美国队长的盾牌 文章目录 turtle之绘制美国队长的盾牌 第一步:导入库turtle 第二步,绘制盾牌的圆: 第三步:绘制盾牌中间的五角星: 最后一步:调用定义五角星的函数: 第一 ...

  8. MFC画带箭头的直线

    构造一个函数,是在startPoint,endPoint间画一条带箭头的线段: void CTry1View::DrawLine(POINT startPoint, POINT endPoint) { ...

  9. 使用MFC画线(初学)

    使用MFC在单文档上划线(初学) MFC的画线 在Visual Studio 2019中新建MFC应用,选单个文档,去掉所有高级功能后创建 直接执行,则有 1.鼠标按下响应 (1)在类向导中 (2)代 ...

最新文章

  1. java data使用_@Data注解详解及使用方法-Fun言
  2. 工作流引擎JFlow与activiti 对比分析(一)5种基本控制流模式的对比
  3. vba 自动排序_学会这个Excel表格技巧之后,立刻实现自动排序,太牛了
  4. vector删除数据时有什么需要注意的吗 ?
  5. linux网卡设置详解,史上最详细的Linux网卡ifcfg-eth0配置详解
  6. 张俊红22岁年度总结
  7. html语言右对齐,在HTML中右对齐块元素
  8. 防腐投加器需要加盐吗_果干、果脯、蜜钱、水果脆片,哪个有营养?你吃对了吗?...
  9. jquery中的class函数addClass,removeClass,toggle,hasClass
  10. 打造最快的Hash表
  11. python走起之第十三话
  12. Dijkstra最短路径算法
  13. GSM sim900a mini模块详解
  14. 小白快速入门| springcloud系列之-快速上手feign
  15. 二维码和一维码生成器
  16. layui 小卡片_如何评价LayUI和他的作者贤心?
  17. 移动修改服务器密码是什么,移动服务器密码
  18. 帅案之上——作为开发者的远见与卓识
  19. 一款免费的截图、滚动截屏软件
  20. 最新域名防红V1.19版本+已经去授权

热门文章

  1. 工业控制系统的安全防护建议
  2. CAS:385437-57-0,DSPE-PEG-Biotin,磷脂-聚乙二醇-生物素用于生物分子的检测
  3. 阿里执行副主席蔡崇信投资NBA篮网队;工信部约谈运营商,不得限制用户资费选择丨价值早报
  4. 我的cocos2d-x学习之路
  5. iphone4卡贴机(有锁版)解决通话长途助理以及号码不显示的解决办法
  6. mysql去重分组_mysql 分组 去重
  7. 计算机等级考试公共知识大纲,二级计算机等级考试大纲
  8. error2448C语言,VS 报错 error C2448: “main”: 函数样式初始值设定项类似函数定义 问题的解决方法...
  9. 洛谷2448 无尽的生命[树状数组 离散化]
  10. 沃顿商学院自我管理课——保持真是性的技能