用MFC画一个美国队长的盾牌
//美国队长的盾牌 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画一个美国队长的盾牌相关推荐
- 用python 画一个美国队长盾牌
好的,这是一个 Python 程序,可以画出一个美国队长盾牌的图像: import matplotlib.pyplot as plt# 创建画布 fig, ax = plt.subplots()# 绘 ...
- 【Python】-转载-画出美国队长的盾牌(重点五角星)
一.效果图 二.五角星角度计算 三.源码 #!/usr/bin/env python #encoding: utf-8 #注意:从网页上复制时,有些空格字符不一致:实际运行时会报错,需要全部修改或替 ...
- 使用easyX插件 用C语言画一个美国队长盾牌-第九个程序20200618
运行代码前请安装easyX图形库.easyX的图形库只支持C++.源文件的后缀一定要是CPP.闲话不多说,直接写代码 #include<stdio.h> #include<stdli ...
- 基于Python-turtle库绘制路飞的草帽骷髅旗、美国队长的盾牌、高达
源码: #路飞骷髅 import turtle as t #黄底帽子 t.pu() t.goto(0,200) t.circle(-130,-80) t.pd() t.colormode(255) t ...
- 用Python Turtle库画一个萌化的蜘蛛侠
你是从什么时候开始喜欢上漫威电影的?美国队长,钢铁侠,雷神? 我先入坑的是因为看了蜘蛛侠,小时候看完就幻想着什么时候自己也能成为一个英雄,我觉得第一代蜘蛛侠刻画得是最好的,也是给我印象最深刻的一代蜘蛛 ...
- 3DMAX建模入门:美国队长的盾牌图文教程,过程炒鸡详细(上)
大家看漫威电影的时候,对里面的英雄角色是不是格外的崇拜呢,今天奶茶为大家带来的3D建模教程就是美国队长的盾牌教程!!! 这篇教程非常的详细,所以就把它分成了上下两个部分,最近看到很多小伙伴在学习的过程 ...
- turtle之绘制美国队长的盾牌
turtle之绘制美国队长的盾牌 文章目录 turtle之绘制美国队长的盾牌 第一步:导入库turtle 第二步,绘制盾牌的圆: 第三步:绘制盾牌中间的五角星: 最后一步:调用定义五角星的函数: 第一 ...
- MFC画带箭头的直线
构造一个函数,是在startPoint,endPoint间画一条带箭头的线段: void CTry1View::DrawLine(POINT startPoint, POINT endPoint) { ...
- 使用MFC画线(初学)
使用MFC在单文档上划线(初学) MFC的画线 在Visual Studio 2019中新建MFC应用,选单个文档,去掉所有高级功能后创建 直接执行,则有 1.鼠标按下响应 (1)在类向导中 (2)代 ...
最新文章
- java data使用_@Data注解详解及使用方法-Fun言
- 工作流引擎JFlow与activiti 对比分析(一)5种基本控制流模式的对比
- vba 自动排序_学会这个Excel表格技巧之后,立刻实现自动排序,太牛了
- vector删除数据时有什么需要注意的吗 ?
- linux网卡设置详解,史上最详细的Linux网卡ifcfg-eth0配置详解
- 张俊红22岁年度总结
- html语言右对齐,在HTML中右对齐块元素
- 防腐投加器需要加盐吗_果干、果脯、蜜钱、水果脆片,哪个有营养?你吃对了吗?...
- jquery中的class函数addClass,removeClass,toggle,hasClass
- 打造最快的Hash表
- python走起之第十三话
- Dijkstra最短路径算法
- GSM sim900a mini模块详解
- 小白快速入门| springcloud系列之-快速上手feign
- 二维码和一维码生成器
- layui 小卡片_如何评价LayUI和他的作者贤心?
- 移动修改服务器密码是什么,移动服务器密码
- 帅案之上——作为开发者的远见与卓识
- 一款免费的截图、滚动截屏软件
- 最新域名防红V1.19版本+已经去授权
热门文章
- 工业控制系统的安全防护建议
- CAS:385437-57-0,DSPE-PEG-Biotin,磷脂-聚乙二醇-生物素用于生物分子的检测
- 阿里执行副主席蔡崇信投资NBA篮网队;工信部约谈运营商,不得限制用户资费选择丨价值早报
- 我的cocos2d-x学习之路
- iphone4卡贴机(有锁版)解决通话长途助理以及号码不显示的解决办法
- mysql去重分组_mysql 分组 去重
- 计算机等级考试公共知识大纲,二级计算机等级考试大纲
- error2448C语言,VS 报错 error C2448: “main”: 函数样式初始值设定项类似函数定义 问题的解决方法...
- 洛谷2448 无尽的生命[树状数组 离散化]
- 沃顿商学院自我管理课——保持真是性的技能