天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 59|回复: 0

MFC 给不规则的多边形闭合区域填充颜色

[复制链接]

该用户从未签到

主题

0

回帖

2912

积分

管理员

积分
2912
发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
现有多个由线段line汇成的闭合区域,将每个区域使用不同的颜色填充。

//绘制图形
        // find the client area
        CRect rect;
        GetClientRect(rect);
        // draw with a thick blue pen
        CPen penBlue(PS_SOLID, 2, RGB(0, 0, 255));
        CPen* pOldPen = pDC->SelectObject(&penBlue);
        int colorIndexR;
        int colorIndexG;
        int colorIndexB;
        CBrush *pOldBrush;
        for (unsigned int i = 0;i < m_minClosedArea.size(); i++)  //m_minClosedArea集合为多个有线段围成的闭合区域
        {
                vector<CLine> m_oneClosedArea= m_minClosedArea[i];//闭合区域A
                int nSize = (int)m_oneClosedArea.size(); //闭合区域的线段数量(点数量)
                CPolyline m_polyline;
                CPoint pts[100];
       
                //将闭合区域A中的点存放在pts中
                for (unsigned int j=0; j<m_oneClosedArea.size(); j++)
                {               
                        Point m_ptStart = m_oneClosedArea[j].getStartPoint();               
                        int x1 = (int)m_ptStart.x;
                        int y1 = (int)m_ptStart.y;
                        pts[j].SetPoint(x1,-y1);
                }

                colorIndexR = (i*50 - 50)%256; //颜色索引
                colorIndexG = (i*100 + 100)%256; //颜色索引
                colorIndexB = (i*200 - 200)%256; //颜色索引

                CBrush brushColor(RGB(colorIndexR,colorIndexG, colorIndexB)); //定义画刷的颜色
                pOldBrush = pDC->SelectObject(&brushColor); //将画刷颜色赋予*pDC
                pDC->Polygon(pts, nSize);  //绘制多边形

                pDC->SelectObject(&pOldPen);       
                pDC->SelectObject(pOldBrush);
        }

 

 

 

 

MFC 给不规则的多边形闭合区域填充颜色
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|中国膜结构网_中国空间膜结构协会

GMT+8, 2024-11-1 09:28 , Processed in 0.154222 second(s), 29 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表