5-1 GDI+绘图基本知识

简介:

5-1  GDI+绘图基本知识

Windows操作系统的图形输出是与设备无关的,使用GDI来处理二维图形图像,进行图形输出。Windows早期版本中使用GDI图像设备接口 (Graphics Device Interface), 是属于绘图方面的 API (Application Programming Interface)。因为应用程序不能直接控制硬件所以当我们要进行绘图的动作时必须通过 GDI 才能完成,由GDI完成实际的图形输出操作。
 GDI+ 又是什么呢?GDI+  .NET Framework的绘图技术可将应用程序和绘图硬件分离让我们能够编写与设备无关的应用程序。它可以让我们不需注意特定显示设备的详细数据便可在屏幕或打印机上显示信息。我们可以调用GDI+ 类别所提供的方法然后这些方法会适当地调用特定的设备驱动程序而完成绘图。
 本章学习目标:
n 了解System. Drawing 命名空间
n 掌握矢量图形和绘制对象
n 可以绘制简单的几何图形
n 掌握图像的基本处理技术

5-1-1 坐标系统

窗体、控件或者打印机都包含坐标,这里是二维图形绘制,即具有XY坐标,默认情况,X坐标代表从绘图区左边边缘(Left)到某一点的距离,Y坐标代表从绘图区上边边缘(Top)到某一点的距离。
1.  坐标原点:在窗体或控件的左上角,坐标为(00);
2.  正方向:X轴正方向为水平向右,Y轴正方向为垂直向下;
3.  单位:在设置时,一般以像素为单位,像素(Pixel 是由 Picture(图像 Element(元素)这两个单词的字母所组成的,是用来计算数码影像的一种单位,把影像放大数倍,会发现这些连续色调其实是由许多色彩相近的小方点所组成,这些小方点就是构成影像的最小单位像素(Pixel)。图形的质量由像素决定,像素越大,分辨率也越大。

5-1-2 System.Drawing命名空间

System.Drawing 命名空间提供了对 GDI+ 基本图形功能的访问,其中一些子命名空间中提供了更高级的功能。该命名空间中常用类,如表5-15-2所示。
说明
Bitmap
封装  GDI+  位图,此位图由图形图像及其属性的像素数据组成。 Bitmap  是用于处理由像素数据定义的图像的对象。
Brush
定义用于填充图形形状(如矩形、椭圆、饼形、多边形和封闭路径)的内部的对象。
Font
定义特定的文本格式,包括字体、字号和字形属性。无法继承此类。
Graphics
封装一个  GDI+  绘图图面。无法继承此类。
Pen
定义用于绘制直线和曲线的对象。无法继承此类。
Region
指示由矩形和由路径构成的图形形状的内部。无法继承此类。
5-1
常用结构,如表5-2所示。
结构
说明
Color
表示  RGB  颜色。
Point
表示在二维平面中定义的点、整数  X   Y  坐标的有序对。
Rectangle
存储一组整数,共四个,表示一个矩形的位置和大小。对于更高级的区域函数,请使用 Region  对象。
Size
存储一个有序整数对,通常为矩形的宽度和高度。
5-2

5-1-3  Graphics

Graphics 类封装了一个GDI+绘图界面,提供将对象绘制到显示设备的方法,使用GDI+创建图形图像时,需要先创建Graphics对象,即在哪里画图,该类无法继承。有三种类型的绘图界面:
1. 窗体和控件
2. 打印机
3. 内存中的位图
Graphics类不能直接实例化,创建图形对象的方法有三种:
1. 控件类的OnPaint()方法参数PaintEventArgs获取Graphics对象
2. 窗体类或控件类中的CreateGraphics()方法获得Graphics对象。
3. 从位图对象(Bitmap)产生一个Graphics对象,Graphics.FromImage(bitmap);
        常用方法及属性,如表5-3所示。
名称
说明
Dispose
释放由 Graphics 使用的所有资源。
DrawEllipse
绘制一个由边框(该边框由一对坐标、高度和宽度指定)定义的椭圆。
DrawArc
绘制弧形
DrawLine
绘制一条连接由坐标对指定的两个点的线条。
绘制由一组 Point 结构定义的多边形。
绘制由坐标对、宽度和高度指定的矩形。
绘制一个扇形,该形状由一个坐标对、宽度、高度以及两条射线所指定的椭圆定义。
DrawCurse
绘制曲线,由参数Point数组指定
填充边框所定义的椭圆的内部,该边框由一对坐标、一个宽度和一个高度指定。
FillRegion
填充 Region 的内部。
ScaleTransform
将指定的缩放操作应用于此 Graphics
TanslateTransform
平移更改坐标系统的原点
5-3 Graphics常用方法




本文转自 qianshao 51CTO博客,原文链接:http://blog.51cto.com/qianshao/217429,如需转载请自行联系原作者

目录
相关文章
|
4月前
|
数据可视化 数据挖掘 图形学
seaborn从入门到精通03-绘图功能实现01-关系绘图
seaborn从入门到精通03-绘图功能实现01-关系绘图
|
8月前
|
编解码 数据可视化 数据挖掘
R语言之基础绘图
R语言之基础绘图
110 0
|
4月前
|
数据可视化 API 前端开发
seaborn从入门到精通03-绘图功能实现02-分类绘图Categorical plots
seaborn从入门到精通03-绘图功能实现02-分类绘图Categorical plots
seaborn从入门到精通03-绘图功能实现02-分类绘图Categorical plots
|
7月前
|
C# 图形学
C# GDI+绘图(一)GDI+介绍及基础
最近,项目中,有一块比较发杂的网格,并在网格上绘有各种颜色和文本,在Dev库中并未找到能实现这种功能的现有或可以二次开发的控件,因此,涉及到GDI+绘图这块陌生的领域。下面即时我在本次学习过程中的笔记,本次内容一共分为4篇,分别都有各自的代码或工程文件提供,有需要的朋友可以下载。
|
10月前
|
开发框架 数据可视化 .NET
R语言绘图001-基础参数
R语言绘图001-基础参数
118 0
|
11月前
|
数据格式
基于 R 语言的绘图技巧汇总
基于 R 语言的绘图技巧汇总
71 1
|
定位技术 图形学 容器
Qt5入门学习——图形视图框架
Qt5入门学习——图形视图框架
290 0
Qt5入门学习——图形视图框架
|
开发者 Python
绘图细节设置2|学习笔记
快速学习绘图细节设置2
95 0
绘图细节设置2|学习笔记
|
开发者 Python
绘图细节设置1|学习笔记
快速学习绘图细节设置1
84 0
绘图细节设置1|学习笔记
|
缓存 图形学
计算机图形学——实验一 VS+OpenGL绘图环境及基本图形绘制
VS+OpenGL绘图环境及基本图形绘制 1、 熟悉OpenGL的主要功能; 2、 掌握OpenGL的绘图流程和原理; 3、 掌握OpenGL核心函数的使用; 4、 熟悉OpenGL基本图形元素的绘制函数。 二. 实验内容 1、 如预备知识所述,创建一个OpenGL工程,修改第一个程序中的Display()函数,如下: 该程序是在窗口中画两条线,分别用黄色和红色绘制。如上所述,OpenGL是一个状态机,glBegin(UINT State)可以设定如下状态: GL_POINTS 画点 GL_LINES 画线
398 0
计算机图形学——实验一 VS+OpenGL绘图环境及基本图形绘制

热门文章

最新文章