计算机图形显示基础_第1页
计算机图形显示基础_第2页
计算机图形显示基础_第3页
计算机图形显示基础_第4页
计算机图形显示基础_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机图形显示基础课件第1页,共61页,2023年,2月20日,星期四 第一章显示技术本章讲述液晶显示器,等离子显示器和CRT显示器的工作原理。重点:各显示设备的基本工作原理及其优缺点。第一节

液晶显示器和等离子显示器

一、液晶显示器

(1)液晶的分类和特点

液晶是一种有机化合物,液态晶体,是某些有机物在一定温度范围内的中间状态。在这种状态下,液晶既具有流动性和连续性,又呈现晶体的性质。液晶相温度,及上下限。分类向列型(分子轴向着同一方向),胆甾型(层与层之间分子轴向发生扭曲),近晶型(分子轴向一致,而且按层排列)

第2页,共61页,2023年,2月20日,星期四第3页,共61页,2023年,2月20日,星期四特点

优点

(1)低电压,微功耗;(2)被动型显示,不怕亮光。本身不发光,靠调制外界光达到显示的目的。在明亮的室外也能显示。(3)体积小,外型薄。(4)显示面积大。(5)无辐射,无污染。缺点:(1)响应速度慢,余辉长(一般为毫秒级)原因是液晶依靠外加电场作用下,液晶分子排列发生变化,由于材料的粘滞度影响,响应速度慢。(2)非主动发光,暗时不能显示,需要加背光。(3)显示视角小。液晶显示器依靠液晶分子的各向异性,对不同方向的入射光,反射率不一样,所以视角较小。

第4页,共61页,2023年,2月20日,星期四(2)液晶结构及工作原理

当偏振光通过某些透明物体时,偏振光的偏振面将会旋转异一定的角度,这种现象称为偏振面的旋转。能使偏振光的偏振面发生旋转的物质称为旋光物质。液晶即是一种旋光物质。扭曲向列效应就是利用外加电压控制偏振光偏振面的旋转来达到显示的目的。

第5页,共61页,2023年,2月20日,星期四第6页,共61页,2023年,2月20日,星期四(3)液晶显示器的驱动电路

1静态驱动电路。

第7页,共61页,2023年,2月20日,星期四2时分割法驱动笔段型LCD

时分割驱动电路把背电极分为COM0,COM1,COM2三组,把字段电极分为三组S1,S2,S3。在S1,S2,S3和COM0,COM1,COM2上加上不同的驱动电压,就可以使需要显示的字段的字段电极电压-背电极电压达到显示电压,从而达到显示的目的。

第8页,共61页,2023年,2月20日,星期四(4)液晶显示器的灰度和彩色

1灰度显示法大容量点阵图形显示器中,灰度显示是不可缺少的。并且灰度显示也是彩色显示的基础。灰度显示方法主要有空间灰度调制和时间灰度调制。

a.空间灰度调制

将显示象素划分为若干个可以单独控制的“子象素”,当显示象素中不同数量的子象素被选通时,在一定距离外观看,象素将显示不同的灰度等级。优点:不需要特殊驱动和控制技巧。缺点:要牺牲一定的分辨率。

第9页,共61页,2023年,2月20日,星期四b.时间灰度调制

在单位时间内,控制显示象素的选通、截止时间长短,使显示象素在观察者眼中形成不同的灰度等级。任何点阵图形显示,都是由动态扫描驱动的一祯祯画面组成。选取若干祯为一个单位,在这个单位内某一象素在不同的祯内被选通,在另一些祯中不被选通。则该象素就会呈现出不同的灰度等级来。

2.彩色显示法

LCD本身不能实现真正意义上的全彩色显示,采用的是“微彩色膜方式”。他将一个点阵象素分割为三个子象素,并在这三个子象素表面设置R,G,B三个微型滤色膜。LCD仅作为光阀门使用,控制每个子象素光阀就可以控制R,G,B三个滤色膜通过光的通断。控制三个子象素光线的灰度级别,就可以控制R,G,B三个子象素通过的不同光量,就可以混合出千万中颜色。

第10页,共61页,2023年,2月20日,星期四液晶本身只起一个光开关的作用,可以称为液晶阀。如果只能控制液晶阀的开关,则R,G,B可以组合成八种颜色。如果各颜色的子象素实现多级灰度,则可实现非常丰富的多种颜色。

第11页,共61页,2023年,2月20日,星期四二、等离子显示器

(1)工作原理

等离子体:

当气体受到高电压作用或强大射线照射时,外围电子摆脱原子核的束缚,由自由电子、带正电离子组成的电中性的气体就叫等离子体。等离子显示器就是利用气体放电发光进行平面显示的一种装置。七段式等离子数字显示器件由两块平板玻璃、封接框和排气管组成。在前玻璃板上喷涂有透明位电极,后玻璃板上有和位电极相同的七段笔画电极。上面沉淀有一层透明介质,防止离子直接撞击电极。两玻璃片之间距离为0.2-0.3mm。通过排气管抽去空腔中的气体,充入以氖为主的氖氩混合气体。

第12页,共61页,2023年,2月20日,星期四等离子显示器用交变电压驱动。当外加电压,放电单元两端电压超过着火电压时,单元放电。产生大量的离子和电子,它们受电场加速,电子向正极运动,离子向负极运动。附着在玻璃壁上。由于这些电荷在两极之间产生“壁电压”,它使放电单元内电场迅速减弱,当减弱到一定程度时,放电停止。随后,外加电压相位改变,交流电压的后半周期到来,因为有前半周所产生的壁电压存在,协助放电。于是在较低的外电压下,放电单元开始放电。这样,交流电压所产生的脉冲放电每半周一次。每次放电都伴着光输出,达到显示信息的目的。

第13页,共61页,2023年,2月20日,星期四(2)等离子显示器驱动

交流电压驱动,电压频率要达到(10~50kHz),工作电压130~200V,才能正常工作。位电极电压和笔划电极电压相位相差180度。幅值为Ut,Ut大于着火电压Up的一半。只有在笔画电极和位电极之间同时加上幅值为Ut的脉冲电压时,等离子显示器才能着火发亮。

点阵型PDP,两块玻璃基板布置多条相互正交的条列电极,每个交点就是一个象素。

彩色PDP由三个单元组成一个象素,其中每个单元电极两侧分别涂有红、绿、蓝荧光粉。放电产生紫外线,由紫外线激励荧光粉发出颜色。

第14页,共61页,2023年,2月20日,星期四第15页,共61页,2023年,2月20日,星期四(三)特点

优点:(1)发光明亮,均匀,不易使人疲劳。(2)平板显示器,很薄,几个毫米。可以作成大型数字显示器。(3)温度特性好,在-55~+110度都可以正常可以显示。

第16页,共61页,2023年,2月20日,星期四第二节

CRT显示器

光栅式CRT图形显示技术是一种被广泛应用的技术。一、阴极射线管(CRT)及光栅扫描显示原理1阴极射线管阴极射线管是一种大型电真空显示器件。由电子枪、偏转系统和荧光屏三个基本部分组成。阴极射线管末端有一个电子枪,能够发射出电子束,这束电子束被聚焦到荧光屏上。在荧光屏的内表面涂有荧光物质薄层,电子束撞击荧光屏而形成荧光亮点。电子束的偏转使用电磁偏转法。在和管颈轴线垂直的平面内,加上两个相互垂直的磁场,电子束在洛仑兹力的作用下而发生水平或垂直偏转。第17页,共61页,2023年,2月20日,星期四第18页,共61页,2023年,2月20日,星期四(2)光栅的扫描和消隐

CRT显示器显示字符和图形,采用光栅扫描方式。光栅扫描包括水平扫描和垂直扫描。电子束在水平和垂直扫描的联合作用下,在屏幕上由左到右,由上到下进行运动。水平(垂直)同步信号、水平(垂直)消隐信号以及欲显示的字符、图形信号或视频信号混合在一起,加到CRT控制栅极上,这个信号称为全电视信号。第19页,共61页,2023年,2月20日,星期四第20页,共61页,2023年,2月20日,星期四二、彩色CRT工作原理彩色CRT具有三个电子枪,呈品字型排列。在荧光屏上,每一个象素由红、绿、兰三个子象素构成。从三个电子枪上射出的三个电子束通过荫罩进行聚焦,分别打在RGB三个基色子象素上,产生三个颜色的混合,从而产生彩色荧光。第21页,共61页,2023年,2月20日,星期四第二章C++语言基础

第一节面向对象的C++语言重点:(1)理解面向对象和面向过程程序设计的区别

(2)了解C++语言和C语言的主要区别。

程序设计有两种方式:一种是面向过程的程序设计方法(POL,Procedure-OrientedProgramming)。C语言即是一种。“数据+算法=程序”。先定义数据,再根据算法对这些数据进行处理,最后得到输出结果。面向对象的程序设计(Object-OrientedProgramming,简称OOP)将数据和对数据的操作相结合,作为一个整体来处理。将性质相同的一类对象和对象的操作概括为一种新的数据类型—类,同时类之间可以继承和派生。概括为“对象+消息=面向对象程序”。

第22页,共61页,2023年,2月20日,星期四一、C++与C语言的一般语法区别

1.注释C++支持的注释方法有两种:(1)/*……*/用于大段的注释

(2)//…….用于单行注释。2.变量定义

C语言的变量定义必须放在所有可执行语句之前。而C++不再区分变量定义部分和执行部分,可以在函数体内任意位置定义局部变量。

intC=1;for(inti=0;i<10;i++){C++;}

(1)局部变量。在一个函数体内定义的变量,只在本函数范围内有效,函数体外不能访问。

(2)全局变量。在函数体外定义的变量,有效范围是从定义处到整个源文件的结束。

3.动态变量的创建

C语言中用函数malloc()动态分配存储空间,用函数free()动态释放已分配的存储空间。C++中提供了两个新的动态分配存储空间的运算符new和delete。第23页,共61页,2023年,2月20日,星期四二、指针和引用

引用是C++的一个特征。指针是对象(变量)的地址,而引用是给对象的地址起一个别名。引用经常用于函数参数表中,作为参数实现双向传值。

1.引用变量

引用变量的说明方式为:

<类型>&引用名=变量名;

2.引用参数

引用用的最多的场合是在函数的参数表中。在C++中,可以使用引用参数,即把形参定义为引用变量,这样在调用函数中处理更为简单。

第24页,共61页,2023年,2月20日,星期四三、函数的改进

1.函数的重载

函数重载是指同一个函数名可以对应多个函数的实现。函数重载允许一个程序内声明多个名称相同的函数,这些函数通常执行相同的功能,但是带有不同类型、不同数目的参数或是不同类型的返回值。2.设置默认参数 调用函数时,若某个参数有一个经常用的值,在声明函数原型的时候,可以用该值作为函数参数的默认值。

第25页,共61页,2023年,2月20日,星期四第二节对象和类类是面向对象程序设计的核心,类描述了具有相同特性和相同行为的对象,是对一组对象的抽象。它实质上是一种新的数据类型。和C语言的结构有相同之处。重点:类和对象抽象概念的理解及其定义方法,派生、继承的含义。难点:概念比较抽象,结合实例进行理解。第26页,共61页,2023年,2月20日,星期四第二节对象和类类是面向对象程序设计的核心,类描述了具有相同特性和相同行为的对象,是对一组对象的抽象。它实质上是一种新的数据类型。和C语言的结构有相同之处。一、类(一)类的定义

类的一般定义形式为:Point类定义1class类名

{private://私有数据及函数;protected://受保护数据及变量;

public://公有数据及函数}

第27页,共61页,2023年,2月20日,星期四Point类及其定义classPoint{intxy;public:voidset_x(intk){x=k;} intget_x(){returnx;}voidset_y(intk){y=k;} intget_y(){returny;} };

其中,Point是类名标识符。在此类中,x和y是两个私有数据成员,分别表示点的横坐标和纵坐标。set_x和set_y函数分别用于设置x与y,即点的坐标值;get_x和get_y都是没有参数的函数,分别返回点的横、纵坐标。

第28页,共61页,2023年,2月20日,星期四1、成员的访问类型

(1)private私有的,是指只有本类中所定义的成员函数才能直接访问这些私有数据或调用这些私有函数,任何该类以外的函数都无法去访问这些私有数据或调用私有函数。否则,编译会出现错误。(2)protected

受保护的成员除了被本类的成员函数存取及调用外,还可以被派生类的成员函数访问。类以外的函数无法访问(3)public

公有的成员可以被本类以外的任何函数访问。

一般情况下数据成员都定义成私有的,不允许访问,这样能保证数据的安全性和隐蔽性。把成员函数定义成公有的,作为类和外界操作的接口,保护数据成员不被随意修改。

第29页,共61页,2023年,2月20日,星期四

2、

成员的组成类的成员分为两大类—数据成员和成员函数数据成员。可以是简单的变量,也可以是用户自己定义的变量。也可以是已经定义的一个类的对象。成员函数。类的成员函数定义如果比较短,可以放在类定义内。如果类的定义比较长,则要放在类定义之外。而函数原型则要放在类之内。一般一个类分为两部分即两个文件,类的定义部分放在一个.h头文件里。成员函数的实现部分放在一个.cpp的源文件里。(二)对象的定义 类是一种新的数据类型,类的对象定义实质上就是变量的定义。和int,float等变量的定义相同。所以也有普通对象、对象数组、对象指针等。

第30页,共61页,2023年,2月20日,星期四(三)函数和析构函数构造函数和析构函数是类的特殊成员函数。构造函数名与类名相同。析构函数是在类名前加一个符号“~”。如果用户没有定义构造函数和析构函数,系统将自动产生默认的构造函数和析构函数。二、继承

继承描述的是类与类之间的关系。把在已有类的基础上定义新类的过程称为继承。继承可以实现代码重用,因而继承机制可以缩短软件开发周期,加快编程速度。(一)基类和派生类

被继承的类称为基类(或父类)。基于父类并增加新特性从而派生出的类称为派生类(或子类)。派生类保留了父类中的数据成员和成员函数,增加了基类中没有的一些数据成员和成员函数,是对基类功能的扩展。

第31页,共61页,2023年,2月20日,星期四派生类的定义一般格式如下:class派生类名:继承方式(public/protected/private)基类名{ //派生类新定义的成员

}

(二)多继承继承分为单继承和多继承。单继承指派生类一个基类派生,多继承指派生类从多个基类派生,具有多个基类的特性。多继承派生类的格式定义如下:class派生类名:继承方式1基类名1,…,继承方式n基类名n{//本派生类新定义的成员

};第32页,共61页,2023年,2月20日,星期四

第三章可视化编程语言VisualC++

第一节

VisualC++6.0开发环境认识

重点:熟悉可视化编程工具的开发环境,了解各种工具的用法。

VisualC++6.0提供了可视化的集成开发环境,包括AppWizard、WorkSpace、ClassWizard和WizardBar等工具。一、认识VisualC++6.0集成开发环境

微软的DeveloperStudio是一个通用的可视化集成开发环境,支持VisualC++、VisualBasic等可视化编程语言。 窗口界面包括标题栏、菜单栏、工具栏、项目工作区、编辑区和输出区。

第33页,共61页,2023年,2月20日,星期四项目工作区WizardBar编辑区输出框第34页,共61页,2023年,2月20日,星期四第二节MFC应用程序概述重点(1)了解Windows程序的特点。(2)熟悉MFC应用程序的框架(3)理解Windows程序的消息传递机制。难点(1)Windows下应用程序的结构体系。(2)交互式应用程序的消息机制。第35页,共61页,2023年,2月20日,星期四一、窗口编程基础

Windows应用程序是运行在Windows操作系统上的,Windows操作系统是一个多任务操作系统。1.窗口。窗口是应用程序与用户进行交互的界面,应用程序通过窗口传递信息给用户,同样,用户通过窗口输入数据,给应用程序发出命令。

2.

消息和消息队列

Windows应用程序是利用消息(Message)来和用户以及操作系统进行交换信息的。消息的作用是通知一个应用程序某个确定的事件的发生,例如单击鼠标左键。这时候应用程序会对这个事件做出响应,如何响应是在程序中定义的,也就是编写了对应该消息(或事件)的处理函数代码。3、事件驱动的程序设计

第36页,共61页,2023年,2月20日,星期四二、MFC应用程序框架

如果用WindowsAPI(ApplicationProgrammingInterface)函数编制Windows应用程序,需要做大量的工作。如果用AppWizard来创建一个MFC单文档应用程序,不需要做任何工作,就可以生成一个具有常用工具栏、菜单栏和状态栏的标准Windows应用程序。

MFC(MicrosoftFoundationClass)是微软编写的一套专门用于Windows编程的基础类库。VC++编程基本上是围绕MFC类库来进行的。

第37页,共61页,2023年,2月20日,星期四(一)构建Windows应用程序的基本类由VC++提供的AppWizard生成的单文档应用程序有五个现成的类。分别是CDrawApp,CMainFrame、CDrawView、CDrawDocument以及CAboutDlg。

类名称

基类

说明

CDrawApp CWinApp 应用程序类

CMainFrame CFrameWnd 窗口框架类

CDrawDoc CDocument 文档类

CDrawView CView 视图类第38页,共61页,2023年,2月20日,星期四(二)文档/视图结构

文档/视图结构是MFC应用程序最核心的概念,它把应用程序的数据和对数据的显示、操作分离开。当打开一个文件时,从文件读入的数据保存在文档类对象里,而视图对象是对文档类中数据的可视化表示,提供和用户交互的界面允许用户查看、编辑数据。应用程序的数据存储在文档对象中,并可以显示在视图中。一个文档可以对应多个视图,即文档中的数据可以以不同的方式显示。例如:在Excel中,同样的数据可以以表格的形式表示,也可以以图标的形式表示。

一个MFC应用程序开始运行后。文档类对象负责管理数据,视图类对象反映显示当前文档对象中的数据,视图和主框架提供可视化的界面与用户实现交互

第39页,共61页,2023年,2月20日,星期四三、消息映射

Windows程序是消息或事件驱动的。(一)消息的类别1.窗口消息。用户与窗口交互会产生窗口消息,例如单击鼠标左键或右键,移动鼠标。输入数字或字符等。视图类对象,窗口类对象都能处理窗口消息。窗口消息的格式为:WM_XXX,例如窗口关闭WM_CLOSE,鼠标左键按下WM_LBUTTONDOWN等。2.命令消息

选择菜单项、单击工具按钮会产生命令消息。

命令消息的格式是:WM_COMMAND第40页,共61页,2023年,2月20日,星期四(二)消息映射系统

AppWizard生成的CMainFrame,CDrawDoc,CDrawView都能够接受窗口消息或命令消息,并调用自己类中已定义的相应函数进行处理。每个类中都维护着一个消息映射表,保存着该类能够接受并处理的消息以及和该消息相对应的处理函数的信息。应用程序类、窗口框架类、文档类和视图类中都定义了一张消息映射表。当发生一个消息或事件时,应用程序按一定的顺序搜索这些类的消息映射表,找到并调用对应的消息处理函数。

(三)

消息处理的路径应用程序类窗口框架类文档类视图类应用程序类、窗口框架类、文档类和视图类都可以接受并处理窗口消息。当一个窗口消息例如鼠标左键按下的消息发出后,该消息按下列顺序处理。

第41页,共61页,2023年,2月20日,星期四第四章基于VisualC++的图形显示基础

对于面向用户的软件,用户主要通过输入、输出设备与计算机进行人-机对话,软件的可视化操作显得非常重要。对软件在图形、图象功能上有很高的要求。

Windows提供了丰富的内部函数,称为API(applicationprogramminginterface),或者叫做Windows应用程序编程接口。API中和图形有关的部分称为图形设备接口GDI(Graphicsdeviceinterface)。作为一种图形操作系统,Windows把所有的东西都作为图形在显示器上进行显示,因此,Windows拥有大量的图形处理函数,即GDI函数。GDI负责管理与不同输出设备的连接,从而使程序开发者不需要和硬件设备打交道,直接调用相关的函数即可。

第42页,共61页,2023年,2月20日,星期四第一节GDI基础知识重点(1)了解计算机图形显示的方法(2)理解设备环境DC和CDC

(3)学会使用笔,刷子,字体等GDI对象,进行绘图。难点抽象概念较多,通过操作软件进行实际演示。第43页,共61页,2023年,2月20日,星期四第一节GDI基础知识一、DC和CDC1.设备环境设备环境DC(devicecontext),又称设备上下文或设备描述表,实际上就是所有绘制图形方法的集合。在Windows环境下,所有图形输出都是在DC上进行的。DC的数据结构中存储了显示器(或打印机)的性能、属性的详细信息。这些数据信息决定了程序如何在显示器上进行显示。用户在绘图之前,必须先获得绘图窗口区域的一个设备环境DC,接着才能进行GDI函数的调用。2.设备上下文类

MFC把设备环境DC封装成了设备上下文类CDC,该类封装了所有的图形输出函数,包括设备环境的创建和初始化、画简单图形(画线、矩形、椭圆)以及复杂操作(如位图,区域操作等)。CDC类的适用范围很广,不仅支持窗口,还能支持打印机。

第44页,共61页,2023年,2月20日,星期四3.OnDraw成员函数

在视图客户区绘图最常适用的是OnDraw函数,它是Cview类的一个虚函数,每当窗口需要重绘时调用该函数。它的函数原型如下:

virtualvoidOnDraw(CDC*pDC);

参数是CDC类的指针,利用该指针就可以调用CDC类的成员函数来完成各种图形绘制工作。4.获取设备上下文(DC) 绘图前必须准备好设备上下文(DC),得到一个CDC类的对象,然后才能调用CDC类的成员函数进行绘图。在MFC应用程序中获得CDC类对象的方法有两种,一种是直接接受一个参数为指向CDC类对象的指针。例如CView类中的OnDraw函数。

第45页,共61页,2023年,2月20日,星期四二、绘图工具GDI对象CGdiObject CGdiObject类是MFC提供的绘图工具的类,它的派生类包括画笔(CPen),画刷(CBrush),字体(CFont),位图(CBitmap),调色板(CPalette)和区域(CRgn)等。使用GDI对象有两个步骤:(1)定义一个GDI绘图对象的实例。(2)调用CDC::SelectObject函数,将它选入到设备上下文中。

1、CPen画笔。画笔用来绘制对象的边框以及直线和曲线。用户可以指定线的颜色及宽度,并且可以指定画实线、点线或虚线。默认的画笔画的是一个象素宽的黑色实线。

CPen(intnPenStyle,intnWidth,COLORREFcrColor);nPenStyle是画笔的风格(样式),即画笔的线型,该参数可以为:PS_SOLID创建一个实线画笔。PS_DASH创建一个虚线画笔。PS_DOT创建一个点线画笔。PS_DASHDOT创建一个双点划线画笔。

nWidth是画笔的宽度。

第46页,共61页,2023年,2月20日,星期四a.用不同线型绘制直线。for(inti=0;i<4;i++)//使用4种风格的画笔{CPenNewPen(PS_SOLID+i,1,RGB(255,0,0));//不同风格的画笔CPen*pOldPen;pOldPen=pDC->SelectObject(&NewPen);pDC->MoveTo(120,100+30*i);//光标移动到指定起始位置pDC->LineTo(500,100+30*i);//使用选中的画笔画线

pDC->SelectObject(pOldObject);//恢复原对象

}b.画不同粗细的直线

for(inti=0;i<7;i++){CPenNewPen;NewPen.CreatePen(PS_SOLID,i*2,RGB(0,255,0));CPen*pOldPen;pOldPen=pDC->SelectObject(&NewPen); pDC->MoveTo(120,120+30*i); pDC->LineTo(500,120+30*i); pDC->SelectObject(pOldPen);}第47页,共61页,2023年,2月20日,星期四2、CBrush对象

CBrush类画刷用来填充一个封闭图形对象(如矩形、椭圆)的内部区域。默认的画刷将封闭图形的内部填充成白色。

CBrush(COLORREFcrColor); 创建一个实画刷,颜色是crColorCBrush(intnIndex,COLORREFcrColor);

创建一个网格画刷。NIndex指定了画刷的网格形式。

HS_BDIAGONAL:

HS_CROSS:

HS_DIAGCROSS:

HS_FDIAGONAL:

HS_HORIZONTAL:

HS_VERTICAL:

第48页,共61页,2023年,2月20日,星期四应用实例

a.实心刷CBrushNewBrush(RGB(0,0,255));CBrush*pOldBrush;pOldBrush=pDC->SelectObject(&NewBrush);pDC->Rectangle(100,100,200,200); pDC->SelectObject(pOldBrush);b.网格刷

CBrushNewBrush;NewBrush.CreateBrush(HS_CROSS,RGB(255,0,0)); CBrush*pOldBrush;pOldBrush=pDC->SelectObject(&NewBrush); pDC->Rectangle(100,100,200,200); pDC->SelectObject(pOldBrush);第49页,共61页,2023年,2月20日,星期四3、CFont对象

字体CFont类是一种具有某种风格和尺寸的所有字符的集合,并提供了修改字体的成员函数。

CFont类构造函数及初始化成员函数

该类只有一个构造函数CFont()。初始化函数BOOLCreateFont(intnHeight,intnWidth,intnEscapement,intnOrientation,intnWeight,BYTEbItalic,BYTEbUnderline,BYTEcStrikeOut,BYTEnCharSet,BYTEnOutPrecision,BYTEnClipPrecision,BYTEnQuality,BYTEnPitchAndFamily,LPCTSTRlpszFacename)

第50页,共61页,2023年,2月20日,星期四CFont类对象应用实例

CFontm_MyFont; m_MyFont.CreateFont(50,0,100,0,FW_BOLD,TRUE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,DEFAULT_PITCH|FF_SWISS,"Arial"); CFont*pOldFont; pOldFont=pDC->SelectObject(&m_MyFont); pDC->TextOut(200,200,“字体实例”); pDC->SelectObject(pOldFont);第51页,共61页,2023年,2月20日,星期四第二节绘制图形元素重点:掌握常用图形的绘制方法,包括点、矩形、椭圆、多边形等基本图形。并上机进行实际动手操作。第52页,共61页,2023年,2月20日,星期四图形元素(简称图元)主要包括点、直线、简单曲线、复杂曲线、文字等。这些图形元素是构成复杂图形的基础。1.绘制点、直线和矩形(1)

点的绘制:绘制点的CDC类的成员函数为SetPixel。函数声明为:

COLORREFSetPixel(intx,inty,COLORREFcrColor);

该函数绘制大小为一个象素的点。x和y为所绘制点的坐标;参数crColor表示绘制点的颜色。

pDC->SetPixel(100,100,RGB(255,255,0));(2)直线的绘制:

CpointMoveTo(intx,inty);//移动当前点到x和y指定的点。

BOOLLineTo(intx,inty);//从当前点向x和y指定的点画线。每次画直线都是以当前位置为起始点。画直线结束后,直线的结束位置又成为当前位置。第53页,共61页,2023年,2月20日,星期四(3)

矩形的绘制:矩形的绘制主要是调用CDC的成员函数Rectangle。函数声明如下:

BOOLRectangle(intx1,inty1,intx2,inty2);

参数x1,y1,x2,y2分别代表了所要绘制矩形的左上顶点坐标值和右下顶点坐标值。在矩形绘制前要选好画笔和画刷。2.绘制简单曲线(1)椭圆的绘制。绘制椭圆的函数为Ellipse。函数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论