Skip to content
  • 首页
  • 留言
  • 关于

Share the joys of programming and technology

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

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

2021年1月17日 liyanliang Comments 0 Comment
阅读次数: 126

Contents

  • 1 问题描述:
  • 2 实现的完整代码:
      • 2.0.1 相关文章

问题描述:

现有多个由线段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);
    }

相关文章

  • C++编写的情人节小程序C++编写的情人节小程序
  • Modern OpenGL绘制圆柱体Modern OpenGL绘制圆柱体
  • OpenGL绘制桥梁模型OpenGL绘制桥梁模型
  • 创建模态对话框绘制直线-ObjectARX开发视频创建模态对话框绘制直线-ObjectARX开发视频
  • 使用 Open XML SDK中的类以编程方式往演示文稿中指定的幻灯片插入图片使用 Open XML SDK中的类以编程方式往演示文稿中指定的幻灯片插入图片
  • 使用OpenXML SDK往PPT中指定的幻灯片插入表格使用OpenXML SDK往PPT中指定的幻灯片插入表格

计算几何

Post navigation

PREVIOUS
创建模态对话框绘制直线-ObjectARX开发视频
NEXT
截面特性计算程序-附源码

发表回复 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注

近期文章

  • ANR崩溃日志查看方法
  • 通过数学方法来计算short类型的变量w的低八位x和高八位
  • 3dTiles数据解析
  • Games101和Games202脑图汇总
  • LearnOpenGL脑图汇总
  • IBL计算总结
  • C++实现一个简单的语言解释器
  • OpenGL-法线贴图(Normal Mapping)
  • OpenGL-卡通着色(Cartoon)
  • OpenGL几何着色器实现贝塞尔曲线
  • WinDbg检查内存泄漏
  • OpenGL雾化效果实现-每像素雾化
  • OpenGL实现billboard效果(CPU)
  • 算法:寻找异常数字
  • OpenGL 几何着色器的应用
  • Midas XD-构件详图开发
  • Midas XD-选筋助手开发
  • Civil Designer开发-检测规范自动生成控制截面
  • Civil Designer开发-公路桥梁承载能力检算评定
  • Midas W-满堂支架快速建模助手开发

全站热点

  • C++编写的情人节小程序 (2,076)
  • 提取最小封闭区域 (1,691)
  • Modern OpenGL绘制圆柱体 (1,602)
  • OpenGL开发环境搭建-GLFW与GLAD配置 超详细 (1,451)
  • 截面特性计算程序-附源码 (1,284)
  • OpenGL绘制旋转立方体 (1,101)
  • 判断一个点是否在闭合区域内 (1,029)
  • WordPress分页插件 – WP-PageNavi的使用(替换现有脚本) (946)
  • OpenGL实现billboard效果(CPU) (861)
  • Midas W-满堂支架快速建模助手开发 (829)
  • 从DLL中动态加载一个函数:LoadLibrary和GetProcAddress的使用 (744)
  • Midas XD [错误] 右侧挡土墙的最下端深度必须小于地基的最下端深度 (706)
  • 两跨连续梁影响线绘制-附源码 (684)
  • 土木想往土木软件开发方向发展,应该如何准备 (677)
  • OpenGL几何着色器实现贝塞尔曲线 (660)
  • 通过Spy++抓取窗口以查询对话框id (608)
  • 使用ODA数据库出现 “ODA_ASSUME”: 找不到标识符的错误 (547)
  • #pragma message 编译时提示信息 (524)
  • OpenGL雾化效果实现-每像素雾化 (504)
  • midas XD2020的开发 (472)

分类

  • C# (3)
  • C++ (19)
  • GIS (1)
  • MFC (3)
  • ObjectARX (2)
  • OpenGL (11)
  • Revit开发 (1)
  • 学习笔记 (2)
  • 岩土 (2)
  • 算法 (1)
  • 结构设计 (7)
  • 职场生涯 (1)
  • 计算几何 (3)

归档

  • 2024 年 12 月 (1)
  • 2024 年 10 月 (1)
  • 2024 年 9 月 (1)
  • 2023 年 3 月 (2)
  • 2022 年 10 月 (1)
  • 2022 年 3 月 (1)
  • 2022 年 2 月 (1)
  • 2022 年 1 月 (5)
  • 2021 年 11 月 (7)
  • 2021 年 6 月 (3)
  • 2021 年 5 月 (2)
  • 2021 年 3 月 (2)
  • 2021 年 2 月 (8)
  • 2021 年 1 月 (18)

标签

3dtiles anr Bezier Curves BillBoard C++ CDN CivilDesigner DLL EasyX fog glTF MFC Midas W Midas XD NormalMapping ObjectARX ODA OpenGL OpenXML Open XML PBR revit WinDbg 基坑设计 影响线 截面特性 桥梁 桥梁检测 桥梁设计 算法 计算几何 设计模式

书签

  • 李燕良的CSDN
  • 崔济东的博客
  • C++爱好者博客
  • 陈学伟的博客
  • 贾苏的博客
  • 陈睦锋的博客
  • 孙勇的博客

统计

  • 1
  • 271
  • 135
  • 252
  • 124
  • 265,837
  • 76,427

实时访问地域

© 2025   liyanliang.net Copyright. All Rights Reserved.