更新时间:2024-01-05 15:26
public abstract class Graphicsextends Object Graphics 类是所有图形上下文的抽象基类,允许应用程序可 以在组件(已经在各种设备上实现),以及闭屏图像上,进行绘制。 Graphics 对象封装了Java支持的基本呈现操作所需的状态信息。
java.awt 类 Graphics
java.lang.Objectjava.awt.Graphics
java.lang.Object java.awt.Graphics直接已知子类: DebugGraphics,Graphics2D
(1) 要在其上绘制的 Component 对象。
(2) 呈现和剪贴坐标的转换原点。
(3) 当前剪贴区。
(4) 当前颜色。
(5) 当前字体。
(6) 当前的逻辑像素操作函数(XOR 或 Paint)。
(7) 当前 XOR 交替颜色(参见setXORMode(java.awt.Color))。
坐标是无限细分的,并且位于输出设备的像素之间。绘制图形轮廓的操作是通过使用像素大小的画笔遍历像素间无限细分路径的操作,画笔从路径上的锚点向下和向右绘制。填充图形的操作是填充图形内部区域无限细分路径操作。呈现水平文本的操作是呈现字符字形完全位于基线坐标之上的上升部分。
图形画笔从要遍历的路径向下和向右绘制。
(1) 如果绘制一个覆盖给定矩形的图形,那么该图形与填充被相同矩形所限定的图形相比,在右侧和底边多占用一行像素。
(2) 如果沿着与一行文本基线相同的y坐标绘制一条水平线,那么除了文字的所有下降部分外,该线完全画在文本的下面。
所有作为此 Graphics 对象方法的参数而出现的坐标,都是相对于调用该方法前的此 Graphics 对象转换原点的。 所有呈现操作仅修改当前剪贴区所限定区域内的像素,此剪贴区是由用户空间中的Shape指定的,并且通过使用 Graphics 对象的程序来控制。此用户剪贴区被转换到设备空间中,并且与设备剪贴区组合,后者是通过窗口可见性和设备范围定义的。用户剪贴区和设备剪贴区的组合定义了复合剪贴区,它确定了最终的剪贴区域。用户剪贴区不能由呈现系统修改,以反映得到的复合剪贴区。用户剪贴区只能通过 setClip 或 clipRect 方法更改。所有的绘制或写入都以当前的颜色、当前绘图模式和当前字体完成的。
protectedGraphics()构造一个新的 Graphics 对象。此构造方法是用于图形上下文的默认构造方法。
因为 Graphics 是一个抽象类,所以应用程序不能直接调用此构造方法。图形上下文从其他图形上下文获取,或者通过在组件上调用 getGraphics 来创建。
命名空间:System.Drawing
程序集:System.Drawing(在system.drawing.dll 中)
封装一个GDI+绘图图面。无法继承此类。
public sealed class Graphics : MarshalByRefObject, IDeviceContext, IDisposable
System.Drawing.Pen myPen = new System.Drawing.Pen(System.Drawing.Color.Red);//画笔System.Drawing.SolidBrush myBrush = new System.Drawing.SolidBrush(System.Drawing.Color.Red);//画刷System.Drawing.Graphics formGraphics = this.CreateGraphics();
formGraphics.FillEllipse(myBrush, newRectangle(0,0,100,200));//画实心椭圆
formGraphics.DrawEllipse(myPen, new Rectangle(0,0,100,200));//空心圆
formGraphics.FillRectangle(myBrush, new Rectangle(0,0,100,200));//画实心方
formGraphics.DrawRectangle(myPen, new Rectangle(0,0,100,200));//空心矩形
formGraphics.DrawLine(myPen, 0, 0, 200, 200);//画线
formGraphics.DrawPie(myPen,90,80,140,40,120,100); //画馅饼图形//画多边形
formGraphics.DrawPolygon(myPen,new Point[]{ new Point(30,140), new Point(270,250), new Point(110,240), new Point (200,170), new Point(70,350), new Point(50,200)}); //清理使用的资源myPen.Dispose(); myBrush.Dispose(); formGraphics.Dispose();
使用Graphics对象绘制线条和形状、呈现文本或显示与操作图像,所用到的属性和方法如表所示。
as3 绘图类Graphics
Flash中的绘图是通过Graphics类实现的,Graphics类直接继承Object类,有两种绘图方法,一是定义绘图样式的方法;一种是用于绘制和清除图形的方法。
Graphics类有关样式的方法包括线条样式和填充样式两类。如下表:
Graphics类的绘图样式方法
Graphics类的绘制图形方法
Graphics类不允许用户来创建实例,要使用Graphics类的方法,要借助于Shape类和Sprite类的实例,这些实例具有graphics属性,graphics属性是Graphics类的实例,通过graphics属性就可以调用绘图的方法。
显示实例名. graphics.lineStyle()
我们经常使用Shape类来绘制图形,因为Shape类只有graphics属性和构造方法,所以使用Shape类来绘制图形的效率会更高。当需要图形的交互功能时,可以考虑使用Sprite类和MovieClip类。
绘制曲线可以使用curveTo()方法,curveTo()方法带有4个参数,即controlx,controly,anchorx,anchory。其中,controlx和controly是控制点的坐标,anchorx和anchory是终点坐标,起点坐标可由moveTo方法指定。用curveTo()方法的关键是控制点的确定,控制点相当于曲线起始点和终点切线的交点。
绘制填充图形只需了解绘图方法的参数。在填充绘图时,如果填充结束时,需要调用endFill方法表示结束填充。除了使用纯色填充外,还可以使用渐变填充和位图填充。