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);

}

原文地址:https://www.cnblogs.com/zombiee99/p/10771886.html

时间: 2024-10-11 10:48:45

MFC图形绘制_颜色改变的相关文章

MFC图形绘制——绘制直尺和坐标系

一.实验目的 1.掌握建立MFC应用程序的方法: 2.掌握映射模式. 二.实验内容 1.在MFC中绘制直尺,直尺需要有刻度,类似于日常学生使用的透明塑料直尺,需要建立四个直尺,分别分布在屏幕客户区的上.下.左.右四个边界.尺子需要有刻度,那客户区上端的尺子距离,应该有厘米.5毫米.1毫米刻度,刻度用竖线显示,长度分别为7毫米.6毫米.5毫米,外观类似于学生直尺,右端留出一公分,防止4个尺子碰在一起. 2.画出一坐标系,给出x坐标变化范围.y坐标变化范围,画出坐标轴,并在坐标轴上标出刻度.原点,要

MFC绘图总结-DIB图形绘制

参考文档: http://blog.csdn.net/hnust_xiehonghao/article/details/37652927 http://blog.sina.com.cn/s/blog_4c75bd8c0100zsw7.html 绘制DIB图到到设备,明确一点,DIB设备无关图形向设备CDC上绘的话,肯定是需要经过图形pixel像素转换的,要转换成设备的颜色像素格式. 参考这段说明: DIB的颜色信息储存在自己的颜色表中,程序一般要根据颜色表为DIB创建逻辑调色板. 在输出一幅DI

MFC图形图像

一.CDC类 CDC类简介 CDC类是一个设备上下文类. CDC类提供了用来处理显示器或打印机等设备上下文的成员函数,还有处理与窗口客户区关联的显示上下文的成员函数.使用CDC的成员函数可以进行所有的绘图操作,包括处理绘图工具.GDI对象的选择.颜色和调色板的处理.获取和设置绘图属性.映射.窗口范围.坐标转换.剪切以及绘制直线.简单图形.椭圆和多边形等,另外它还为文本输出.处理字体.使用打印机跳转和滚动等提供了成员函数. 如上所述,CDC类几乎封装了所有的Windows GDI函数,另外,MFC

Android官方开发文档Training系列课程中文版:OpenGL绘图之图形绘制

原文地址:http://android.xsoftlab.net/training/graphics/opengl/draw.html 如果你还不清楚如何定义图形及坐标系统,请移步:Android官方开发文档Training系列课程中文版:OpenGL绘图之图形定义. 在定义了图形之后,你接下来需要做的就是将它绘制到屏幕上.不过使用OpenGL ES 2.0 API来绘制这个图形所需要的代码量可能要比想象中的多一些,这是因为API为图形渲染管道提供了大量的控制细节. 这节课会展示如何绘制上节课所

Python基本图形绘制 (第1周)

1.哪个选项不能正确引用turtle库进而使用setup()函数????????????????????????????????????????????????????????????????????????????????????????????????? A from turtle import* B import turtle as t C import setup from turtle D import turtle 正确答案: C import只有三种使用方法,以turtle库为例:

测验2: Python基本图形绘制 (第2周)-单选题

1.哪个选项不能正确引用turtle库进而使用setup()函数????????????????????????????????????????????????????????????????????????????????????????????????? A.import turtle as t B.from turtle import* C.import turtle D.import setup from turtle 解析: import只有三种使用方法,以turtle库为例: imp

从零开始openGL—— 二、 基本图形绘制

前言 这是从零开始openGL系列文章的第二篇,在上篇文章中介绍了基本的环境配置,这篇文章将介绍如何绘制基本图形(圆.三角形.立方体.圆柱.圆锥). 基本框架 下面这里我先给出opengl的3D绘图的基本框架 #include <windows.h> #include <string.h> #include <stdlib.h> #include <gl\glui.h> #include <math.h> #include "commo

Scala实验二——2.模拟图形绘制

题目: 对于一个图形绘制程序,用下面的层次对各种实体进行抽象.定义一个 Drawable 的特 质,其包括一个 draw 方法,默认实现为输出对象的字符串表示.定义一个 Point 类表示点, 其混入了 Drawable 特质,并包含一个 shift 方法,用于移动点.所有图形实体的抽象类为 Shape,其构造函数包括一个 Point 类型,表示图形的具体位置(具体意义对不同的具体图 形不一样).Shape 类有一个具体方法 moveTo 和一个抽象方法 zoom,其中 moveTo 将图形从

Python基本图形绘制库——turtle

(1).介绍 turtle库也叫海龟库,是turtle绘图体系的Python实现.turtle库是Python语言的标准库之一,是入门级的图形绘制函数库. turtle绘图体系:也叫海龟绘图系统,它是在1969年诞生,主要用于程序设计入门的一种绘图方式. Python计算生态 = 标准库 + 第三方库 标准库:随解释器直接安装到操作系统中的功能模块. 第三方库:需要经过安装才能使用的功能模块. turtle官方文档:https://docs.python.org/3/library/turtle