![](https://img-blog.csdnimg.cn/20190927151124774.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
图形学二维入门跟练笔记
文章平均质量分 60
跟着孔令德老师学习图形学-二维入门
赴星辰大海
这个作者很懒,什么都没留下…
展开
-
MFC之学习交互式绘图技术、三角形交互式实时绘制
1.笔记1.1回显技术回显是对图形的操作,用某种方式表达出来的技术。例如,在窗口客户区使用鼠标移动顶点时,希望能实时显示顶点坐标,这就是一种回显技术。1.2引力域技术绘图过程中,常常需要使用鼠标光标选择某一顶点。要准确定位光标很难,这时可以采用引力域技术。引力域是指以某一点为中心所建立的一个矩形区域,当光标处于矩形区域之内时,就被“引力”吸引到该点上来。需要注意的是引力域大小要选择适当,太小了没有引力,太大了容易出现错误连接。1.3橡皮筋技术橡皮筋技术是鼠标绘图的过程连续、动态地原创 2021-08-03 17:20:28 · 2395 阅读 · 3 评论 -
MFC之学习输出文本和设置字体
1.笔记1.1输出文本1.1.1设置文本颜色函数函数原型:virtual COLORREF CDC::SetTextColor(COLORREF crColor);调用成功返回文本原本的颜色。默认文本颜色为黑色。1.1.2设置背景模式函数函数原型:int CDC::SetBkMode(int nBkMode);调用成功返回原背景模式。nBkMode可以取的值:代码 功能 OPAQUE 使用当前窗口的背景画刷颜色填充文字背景。这是默认的文本背景模原创 2021-08-03 14:10:06 · 3397 阅读 · 0 评论 -
MFC之使用数组读入并显示位图
1.笔记1.1使用动态一维数组存储位图数据。2.使用练习2.1将一张位图的数据存储于一维数组中,读取一维数组数据,使用SetPixelV函数将图像绘制到客户区。既然是逐个像素点绘制,那必然是按照原样绘制,没有拉伸效果。void CExample1View::OnDraw(CDC* pDC){ CExample1Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return; // TODO: 在此处为本机原创 2021-08-02 16:05:22 · 1146 阅读 · 0 评论 -
MFC之学习位图操作
1.笔记1.1位图的概念位图是一种将显示器的图像数据不经过压缩而直接按位存储的文件格式,位图主要分为设备相关位图(device dependent bitmap,DDB),设备无关位图(device independent bitmap,DIB)。其中DIB以扩展名bmp留在文件中,DDB也称为GDI位图,是一种MFC内部位图格式,由BITMAP结构体描述。显然导入MFC工程的DIB位图会转化为DDB位图,转存到BITMAP结构体。1.2位图操作函数1.2.1创建与指定设备上下文兼容的内原创 2021-08-02 14:38:50 · 2494 阅读 · 0 评论 -
MFC之学习Bezier样条使用
1.笔记1.1Bezier曲线一条三次Bezier样条通过控制4个定义点来定义图形:两个端点和两个控制点。起始点和终止点称为端点,中间的两个点称为控制点。移动端点时Bezier曲线改变曲线的曲率(弯曲的程度),移动中间点(也就是移动虚拟的控制线)时,Bezier曲线在起始点和终止点锁定的情况下做均匀移动。1.2Bezier样条函数函数原型:BOOL CDC::PolyBezier(const POINT* lpPoints,int nCount);lpPoints是样条的终点和原创 2021-08-01 22:37:51 · 1040 阅读 · 0 评论 -
MFC之学习路径层函数
1.笔记1.1路径层函数1.1.1打开路径层函数原型:BOOL CDC::BeginPath();没有参数,如果调用成功,返回非零,否则返回零。功能是在设备上下文中打开路径层。1.1.2关闭路径层函数原型:BOOL CDC::EndPath();没有参数,如果调用成功,返回非零,否则返回零。功能是关闭路径层,并将路径层选入设备上下文。该函数在完成绘制后使用。1.1.3填充路径层函数原型:BOOL CDC::FillPath();没有参数,如果调用成功原创 2021-07-29 22:39:56 · 507 阅读 · 0 评论 -
MFC之画刷填充矩形函数、马赫带、加载图片资源
1.笔记1.1画刷填充矩形函数函数原型:void CDC::FillRect(LPCRECT lpRect,CBrush* pBrush);该函数相比FillSolidRect函数的优势在于可以选择颜色、阴影、图案3种方式填充矩形。使用该函数的好处是不需要将画刷选入设备上下文,使用完后不需要恢复设备上下文。2.使用练习2.1将客户区沿宽度方向十二等分,分别使用12种灰度予以填充。该图形称为马赫带(Mach Band),也称边缘对比效应,当观察两块亮度不同的区域时,边界处对比原创 2021-07-27 15:35:29 · 1378 阅读 · 0 评论 -
MFC之学习颜色矩形填充函数的使用、设置客户区背景色
1.笔记1.1颜色填充矩形函数函数原型:void CDC::FillSolidRect(LPCRECT lpRect,COLORREF clr);void CDC::FillSolidRect(int x,int y,int cx,int cy,COLORREF clr);(x,y)是指定矩形的坐标数值都最小的角的逻辑坐标,cx是指定矩形宽度,cy是指定矩形高度,即x+cx、y+cy到达(x,y)经过的矩形对角线上矩形的另一角,clr是指定矩形填充颜色。该函数绘制出的矩形,不包括x+c原创 2021-07-27 13:25:49 · 4499 阅读 · 0 评论 -
MFC之学习多边形绘制、阴影模式、多边形填充模式与绘制实心五角星
1.笔记1.1绘制多边形函数BOOL CDC::Polygon(LPPOINT lpPoints,int nCount);lpPoints是多边形顶点数组名,数组中每个点是CPoint对象(或称POINT结构体),nCount是数组中顶点个数。调用成功返回非零,否则返回零。1.2阴影画刷1.2.1创建阴影画刷函数BOOL CreateHatchBrush(int nIndex,COLORREF crColor);参数为阴影模式、阴影颜色。调用成功返回非零,否则返回零。1.原创 2021-07-25 19:11:18 · 4161 阅读 · 0 评论 -
MFC之学习扇形绘制与绘制阴阳鱼图
1.笔记1.1绘制扇形函数函数原型:BOOL CDC::Pie(int x1,int y1,int x2,int y2,int x3,int y3,int x4,int y4);BOOL CDC::Pie(LPCRECT lpRect,POINT ptStart,POINT ptEnd);调用成功返回非零,否则返回零。所有参数和绘制椭圆弧函数的参数含义一致(见上篇博客),即扇形和参数的关系是:扇形由弧和直线段组成,故参数的两个点的填写顺序由弧方向决定,默认情况依然是逆时针方向,顺原创 2021-07-25 15:37:46 · 2098 阅读 · 0 评论 -
MFC之学习绘制椭圆弧
1.笔记1.1绘制椭圆弧函数函数原型:BOOL CDC::Arc(int x1,int y1,int x2,int y2,int x3,int y3,int x4,int y4);BOOL CDC::Arc(LPCRECT lpRect,POINT ptStart,POINT ptEnd);调用成功返回非零,否则返回零。参数关系如图所示(以坐标系满足x2-x1>0、y2-y1>0时举例):两个空心圆圈为椭圆弧上的点,填写到参数中的顺序取决于椭圆弧的绘制方向,默认情况下原创 2021-07-25 14:31:41 · 1490 阅读 · 0 评论 -
MFC之学习绘制椭圆、库画刷使用
1.笔记1.1绘制椭圆函数原型:BOOL CDC::Ellipse(int x1,int y1,int x2,int y2);BOOL CDC::Ellipse(LPCRECT lpRect);一个椭圆由一个矩形唯一确定(内切椭圆)。调用成功返回非零,否则返回0。1.2选入库画刷进行绘图一些常用的绘图对象的属性,已经在库里预先定义好了,可以直接选入设备上下文调用,不过要借助专用的函数。1.2.1选入库对象函数virtual CGdiObject* SelectStock原创 2021-07-25 13:47:23 · 2287 阅读 · 0 评论 -
MFC之学习绘制矩形、画刷使用
1.笔记1.1绘制矩形1.1.1函数原型:BOOL CDC::Rectangle(int x1,int y1,int x2,int y2);BOOL CDC::Rectangle(LPCRECT lpRect);调用成功返回非零,否则返回零。绘制的矩形不包括右边界和下边界,宽度为x2-x1,高度为y2-y1。矩形由左上角和右下角唯一确定。1.1.2默认设置绘制矩形包括绘制矩形边框和填充矩形内部,绘制边框使用画笔CPen,填充内部使用画刷CBrush。默认情况下画笔的属性为实线原创 2021-07-24 22:45:12 · 7056 阅读 · 0 评论 -
MFC之学习绘制线段、画笔使用与画金刚石图案
1.笔记1.1绘制直线段1.1.1移动当前位置函数原型:CPoint CDC::MoveTo(int x,int y);CPoint CDC::MoveTo(POINT point);返回值是先前位置。1.1.2绘制直线段函数原型:BOOL CDC::LineTo(int x,int y);BOOL CDC::LineTo(POINT point);调用成功返回非0,否则返回01.2改变直线段属性使用CPen画笔类。1.2.1创建画笔函数原型:原创 2021-07-24 15:46:42 · 702 阅读 · 0 评论 -
MFC之CDC类、绘图工具类学习与绘图初级绘制像素点
1.笔记1.1CDC类第一个C是Class,D是Device,第二个C是Context,即“设备上下文”,是MFC中应用程序的图形设备接口,封装了绘图所需的成员函数。1.1.1使用规则任何时候,最多只能获得5个CDC同时使用。1.1.2获得CDC函数原型:CDC* CWnd::GetDC();调用成功则返回当前窗口客户区设备上下文标识符,否则返回NULL。1.1.3释放CDC函数原型:int CWnd::ReleaseDC(CDC* pDC);pDC是要释原创 2021-07-24 12:25:12 · 2094 阅读 · 0 评论 -
VS2019MFC使用映射模式函数自建坐标系绘图
1.需要解决问题原点位于窗体视图区中心(视图区大小与窗口大小相等),x轴为水平,向右为正,y轴为垂直,向上为负,要绘制三角形的顶点坐标为(-200,-100)、(200,-100)、(0,200)。(tip:MFC的设备坐标水平方向为x轴,垂直方向为y轴)2.映射模式(MapMode)模式代码 宏定义值 坐标系特征 MM_TEXT 1 每个逻辑单位被转换为1个设备像素,正x向右,正y向下 MM_LOMETRIC 2 每个逻辑单位被转换为0.1毫米,正x原创 2021-07-23 23:51:55 · 2206 阅读 · 0 评论 -
VS2019MFC进行无预览简单绘图:直线,画笔,画刷,矩形,椭圆
1.MFC常用绘图函数CreatePen 创建画笔;属性:线型、宽度、颜色 CreateSolidBrush 创建画刷,填充封闭图形 SetPixel 绘制像素点,返回RGB值 SetPixelV 绘制像素点,返回0或非0 MoveTo 移动当前位置,绘制直线时确定起点 LineTo 移动直线段,绘制直线时确定终点 Rectangle 绘制矩形 Ellipse 绘制椭圆 FillSolidRect 填充矩形颜色原创 2021-07-23 20:27:51 · 4093 阅读 · 2 评论