没有合适的资源?快使用搜索试试~ 我知道了~
绘制太极图的原理简单来说就是画两个半圆一黑一白 拼成一个正圆 再在大圆的左侧和右侧画两个恰好相切的黑圆和白圆作为突出端 最后分别在这两个突出端里面画两个一黑一白的小洞 MFC里利用void CDrawView::OnDraw CDC pDC 这个函数进行绘图 和课堂上绘制正弦曲线相比 如果用一笔一笔循环的方式画圆将会很复杂 因此我就参考网上的 用Pie函数和Ellipse函数画弧和圆 画图用了CBrush画刷和CPen画笔 ">绘制太极图的原理简单来说就是画两个半圆一黑一白 拼成一个正圆 再在大圆的左侧和右侧画两个恰好相切的黑圆和白圆作为突出端 最后分别在这两个突出端里面画两个一黑一白的小洞 MFC里利用void CDrawView::OnDraw CDC pDC 这 [更多]
资源推荐
资源详情
资源评论
MFC 太极图绘制
绘制太极图的原理简单来说就是画两个半圆一黑一白,拼成一个正圆。再在
大圆的左侧和右侧画两个恰好相切的黑圆和白圆作为突出端。最后分别在这两
个 突 出 端 里 面 画 两 个 一 黑 一 白 的 小 洞 。 MFC 里 利 用 void
CDrawView::OnDraw(CDC* pDC) 这个函数进行绘图。
和课堂上绘制正弦曲线相比,如果用一笔一笔循环的方式画圆将会很复
杂,因此我就参考网上的,用Pie函数和Ellipse函数画弧和圆。画图用了
CBrush画刷和CPen画笔。
其余代码与画正弦的代码一样,OnDraw函数部分代码如下:
void CDrawView::OnDraw(CDC* pDC)
{
CDrawDoc* pDoc = GetDocument();
CBrush blackBrush,whiteBrush; //画太极图
CPen blackPen,whitePen;
blackPen.CreatePen(PS_SOLID | PS_COSMETIC,1,RGB(0,0,0));
whitePen.CreatePen(PS_SOLID | PS_COSMETIC,1,RGB(255,255,255));
blackBrush.CreateSolidBrush(RGB(0,0,0)); //黑色笔刷
whiteBrush.CreateSolidBrush(RGB(255,255,255)); //白色笔刷
CBrush *oldBrush = pDC->SelectObject(&blackBrush);
CPen *oldPen = pDC->SelectObject(&blackPen);
CRect rect(100,100,400,400); //用于画图的矩形
pDC->Pie(&rect,CPoint(100,250),CPoint(400,250)); //画一个半圆填涂成黑色
pDC->SelectObject(&blackPen);
pDC->SelectObject(&whiteBrush);
pDC->Pie(&rect,CPoint(400,250),CPoint(100,250)); //将另外半圆填充成白色(黑边白里)
pDC->SelectObject(&blackBrush);
pDC->SelectObject(&blackPen);
pDC->Ellipse(100,175,250,325); //画一个黑色的圆构成太极的一个突出端
pDC->SelectObject(&whiteBrush);
pDC->SelectObject(&whitePen);
pDC->Ellipse(250,175,400,325); //画一个白色的圆构成太极的另一个突出端
pDC->Ellipse(155,230,195,270); //在黑色的那一半画一个白色的小圆
pDC->SelectObject(&blackBrush);
pDC->SelectObject(&blackPen);
pDC->Ellipse(305,230,345,270); //在白色的一半画另一个小黑圆。
pDC->SelectObject(oldPen);
pDC->SelectObject(oldBrush);
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
资源评论
skchj2
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功