zoukankan      html  css  js  c++  java
  • MFC图形绘制_颜色改变

    计算机图形学中的裁剪算法,在画出原线段后修改画笔为白色对线段进行遮盖,之后再绘制。

    修改画笔算法:

    //用白色消除原来的画线痕迹

    CPen cPen;//生明画笔 画笔和画刷都应该有
    cPen.CreatePen(PS_SOLID,1,RGB(255,255,255)) ;
    CPen* pOldPen = pDC->SelectObject(&cPen);
    pDC->SelectObject(&cPen);
    /*CBrush brush, *oldBrush;//创建画刷
    brush.CreateSolidBrush(RGB(0, 255, 255));//更改颜色
    oldBrush=pDC->SelectObject(&brush);//重新选取
    */
    pDC->MoveTo(Round(p0.x),Round(p0.y));
    pDC->LineTo(Round(p1.x),Round(p1.y));
    pDC->SelectObject(pOldPen);//还回画刷

    一开始查到的资料是用CBrush类的,不知为啥没用.....CPen就可以

    另:

    在Ondraw()外的函数接口绘制图形,pDC需要初始化,坐标轴也要重新调整

    void Cweek9_2View::OnCut()
    {
    // TODO: 在此添加命令处理程序代码

    CDC* pDC= GetDC();

    CRect rect; //定义客户区
    GetClientRect(&rect); //获得客户区的大小
    pDC->SetMapMode(MM_ANISOTROPIC); //自定义坐标系
    pDC->SetWindowExt(rect.Width(),rect.Height()); //设置窗口比例
    pDC->SetViewportExt(rect.Width(),-rect.Height()); //设置视区比例,且x轴水平向右,y轴垂直向上
    pDC->SetViewportOrg(rect.Width()/2,rect.Height()/2);//设置客户区中心为坐标系原点
    rect.OffsetRect(-rect.Width()/2,-rect.Height()/2); //矩形与客户区重合

    ...

    ReleaseDC(pDC); 

    }

  • 相关阅读:
    JS截取字符串方法实例
    Adobe Flash Builder 4.6 打开时提示Failed to create the Java Virtual Machine
    ionic 上拉菜单(ActionSheet)安装和iOS样式不一样
    Echarts柱状图百分比显示
    js替换数组中字符串实例
    jQuery获取json数据
    ionic左滑删除
    JavaScript修改日期格式
    ionic之angular1.X缓存问题解决
    angularjs1.X获取前一天日期
  • 原文地址:https://www.cnblogs.com/zombiee99/p/10771886.html
Copyright © 2011-2022 走看看