您的位置:首页 > 编程语言 > C#

C# 绘制曲线(一)

2015-10-22 11:27 357 查看
一、graphics类说明:
GDI+大部分功能封装在Graphics类中。
MSDN:http://msdn.microsoft.com/zh-cn/library/system.drawing.graphics.aspx

 

Graphics类包含在System.Drawing名称空间下,Graphics对象表示GDI+绘图表面,是用于创建图形图像的对象。创建要绘制的图形对象,需要先创建
Graphics对象,然后才可以使用GDI+绘制线条和形状、呈现文本或显示与操作图像。

处理图形包括两个步骤:创建Graphics对象和使用Graphics对象绘制线条和形状、呈现文本或显示与操作图像。


1.创建 Graphics 对象

在ASP.NET中可以从任何由Image类派生的对象创建Graphics对象。通过调用System.Drawing.Graphics.FromImage(System.Drawing.Image)方法,提供要从其创建
Graphics对象的Image变量的名称,代码如下:

 
Bitmap bitmap = new Bitmap(80, 80);
Graphics g = Graphics.FromImage(bitmap);
 

获得图形对象引用之后,即可绘制对象、给对象着色并显示对象。


2.使用Graphics对象绘制线条和形状、呈现文本或显示与操作图像

使用Graphics对象绘制线条和形状、呈现文本或显示与操作图像,所用到的属性和方法如表所示。

表 Graphics类的属性及属性说明

名称
说明
Clip
获取或设置 Region,该对象限定此 Graphics 的绘图区域。
ClipBounds
获取一个 RectangleF 结构,该结构限定此 Graphics 的剪辑区域。
CompositingMode
获取一个值,该值指定如何将合成图像绘制到此 Graphics。
CompositingQuality
获取或设置绘制到此 Graphics 的合成图像的呈现质量。
DpiX
获取此 Graphics 的水平分辨率。
DpiY
获取此 Graphics 的垂直分辨率。
InterpolationMode
获取或设置与此 Graphics 关联的插补模式。
IsClipEmpty
获取一个值,该值指示此 Graphics 的剪辑区域是否为空。
IsVisibleClipEmpty
获取一个值,该值指示此 Graphics 的可见剪辑区域是否为空。
PageScale
获取或设置此 Graphics 的全局单位和页单位之间的比例。
PageUnit
获取或设置用于此 Graphics 中的页坐标的度量单位。
PixelOffsetMode
获取或设置一个值,该值指定在呈现此 Graphics 的过程中像素如何偏移。
RenderingOrigin
为抵色处理和阴影画笔获取或设置此 Graphics 的呈现原点。
SmoothingMode
获取或设置此 Graphics 的呈现质量。
TextContrast
获取或设置呈现文本的灰度校正值。
TextRenderingHint
获取或设置与此 Graphics 关联的文本的呈现模式。
Transform
获取或设置此 Graphics 的世界变换。
VisibleClipBounds
获取此 Graphics 的可见剪辑区域的边框。
表   Graphics类的方法及方法说明

名称
说明
AddMetafileComment
向当前 Metafile 添加注释。
BeginContainer
保存具有此 Graphics 的当前状态的图形容器,然后打开并使用新的图形容器。可重载。
Clear
清除整个绘图面并以指定背景色填充。
CopyFromScreen
执行颜色数据从屏幕到 Graphics 的绘图图面的位块传输。可重载。
CreateObjRef 
创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。 (从 MarshalByRefObject
继承。)
Dispose
释放由Graphics使用的所有资源。
DrawArc
绘制一段弧线,它表示由一对坐标、宽度和高度指定的椭圆部分。可重载。
DrawBezier
绘制由4个Point 结构定义的贝塞尔样条。可重载。
DrawBeziers
用 Point 结构数组绘制一系列贝塞尔样条。可重载。
DrawClosedCurve
绘制由 Point 结构的数组定义的闭合基数样条。可重载。
DrawCurve
绘制经过一组指定的 Point 结构的基数样条。可重载。
DrawEllipse
绘制一个由边框(该边框由一对坐标、高度和宽度指定)定义的椭圆。可重载。
DrawIcon
在指定坐标处绘制由指定的 Icon 表示的图像。可重载。
DrawIconUnstretched
绘制指定的 Icon 表示的图像,而不缩放该图像。
DrawImage
在指定位置并且按原始大小绘制指定的 Image。可重载。
DrawImageUnscaled
在由坐标对指定的位置,使用图像的原始物理大小绘制指定的图像。可重载。
DrawImageUnscaled

AndClipped
在不进行缩放的情况下绘制指定的图像,并在需要时剪辑该图像以适合指定的矩形。
DrawLine
可重载。绘制一条连接由坐标对指定的两个点的线条。
DrawLines
可重载。绘制一系列连接一组Point结构的线段。
DrawPath
绘制GraphicsPath。
DrawPie
可重载。绘制一个扇形,该形状由一个坐标对、宽度、高度以及两条射线所指定的椭圆定义。
DrawPolygon
可重载。绘制由一组 Point 结构定义的多边形。
DrawRectangle
可重载。绘制由坐标对、宽度和高度指定的矩形。
DrawRectangles
绘制一系列由 Rectangle 结构指定的矩形。可重载。
DrawString
在指定位置并且用指定的Brush 和Font对象绘制指定的文本字符串。可重载。
EndContainer
关闭当前图形容器,并将此Graphics的状态还原到通过调用BeginContainer方法保存的状态。
EnumerateMetafile
将指定Metafile中的记录逐个发送到回调方法以在指定的点处显示。可重载。
Equals 
已重载。 确定两个 Object 实例是否相等。 (从 Object 继承。)
ExcludeClip
更新此Graphics的剪辑区域,以排除Rectangle结构所指定的区域。可重载。
FillClosedCurve
填充由 Point 结构数组定义的闭合基数样条曲线的内部。可重载。
FillEllipse
填充边框所定义的椭圆的内部,该边框由一对坐标、一个宽度和一个高度指定。可重载。
FillPath
填充 GraphicsPath 的内部。
FillPie
填充由一对坐标、一个宽度、一个高度以及两条射线指定的椭圆所定义的扇形区的内部。可重载。
FillPolygon
可重载。 填充 Point 结构指定的点数组所定义的多边形的内部。
FillRectangle
填充由一对坐标、一个宽度和一个高度指定的矩形的内部。可重载。
FillRectangles
填充由 Rectangle 结构指定的一系列矩形的内部。可重载。
FillRegion
填充Region的内部。
Flush
强制执行所有挂起的图形操作并立即返回而不等待操作完成。可重载。
FromHdc
从设备上下文的指定句柄创建新的Graphics。可重载。
FromHdcInternal
返回指定设备上下文的Graphics。
FromHwnd
从窗口的指定句柄创建新的Graphics。
FromHwndInternal
创建指定 Windows 句柄的新Graphics。
FromImage
从指定的Image创建新的Graphics。
GetHalftonePalette
获取当前Windows的半色调调色板的句柄。
GetHashCode 
用作特定类型的哈希函数。GetHashCode 适合在哈希算法和数据结构(如哈希表)中使用。 (从 Object 继承。)
GetHdc
获取与此Graphics关联的设备上下文的句柄。
GetLifetimeService 
检索控制此实例的生存期策略的当前生存期服务对象。 (从 MarshalByRefObject 继承。)
GetNearestColor
获取与指定的Color结构最接近的颜色。
GetType 
获取当前实例的 Type。 (从 Object 继承。)
InitializeLifetimeService 
获取控制此实例的生存期策略的生存期服务对象。 (从 MarshalByRefObject 继承。)
IntersectClip
将此Graphics的剪辑区域更新为当前剪辑区域与指定 Rectangle 结构的交集。可重载。
IsVisible
指示由一对坐标指定的点是否包含在此 Graphics 的可见剪辑区域内。可重载。
MeasureCharacterRanges
获取Region对象的数组,其中每个对象将字符位置的范围限定在指定字符串内。
MeasureString
测量用指定的 Font 绘制的指定字符串。可重载。
MultiplyTransform
将此 Graphics 的世界变换乘以指定的 Matrix。可重载。
ReferenceEquals 
确定指定的 Object 实例是否是相同的实例。 (从 Object 继承。)
ReleaseHdc
释放通过以前对此 Graphics 的 GetHdc 方法的调用获得的设备上下文句柄。可重载。
ReleaseHdcInternal
释放设备上下文的句柄。
ResetClip
将此 Graphics 的剪辑区域重置为无限区域。
ResetTransform
将此 Graphics 的世界变换矩阵重置为单位矩阵。
Restore
将此 Graphics 的状态还原到 GraphicsState 表示的状态。
RotateTransform
将指定旋转应用于此 Graphics 的变换矩阵。可重载。
Save
保存此 Graphics 的当前状态,并用 GraphicsState 标识保存的状态。
ScaleTransform
将指定的缩放操作应用于此 Graphics 的变换矩阵,方法是将该对象的变换矩阵左乘该缩放矩阵。可重载。
SetClip
将此 Graphics 的剪辑区域设置为指定 Graphics 的 Clip 属性。可重载。
ToString 
返回表示当前 Object 的 String。 (从 Object 继承。)
TransformPoints
使用此 Graphics 的当前世界变换和页变换,将点数组从一个坐标空间转换到另一个坐标空间。可重载。
TranslateClip
将此 Graphics 的剪辑区域沿水平方向和垂直方向平移指定的量。可重载。
TranslateTransform
通过使此Graphics的变换矩阵左乘指定的平移来更改坐标系统的原点。可重载。
绘制曲线例程:可以在panel对象中绘制曲线,或者PictureBox对象,而不只是this

private void button2_Click(object sender, EventArgs
e)
     
  {
     
      Graphics g
= panel2.CreateGraphics();
     
      Pen pen1 =
new Pen(Color.Red);
     
      p1 = new
Point(30, 30);
     
      p2 = new
Point(100, 100);
     
     
g.DrawLine(pen1, 30, 30, 100, 100);
     
      p1 = new
Point(30, 40);
     
      p2 = new
Point(100,110);
     
      Pen pen2 =
new Pen(Color.Green);
     
     
g.DrawLine(pen2, p1, p2);
     
  }
[align=center]
[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: