java中Graphics2D类属性有哪些?详细解析

上次已经为大家介绍过java中Graphics2D类的含义?它有哪些绘图方法?今天我们再深入了解下它的属性有哪些,详细地为大家描述。一起来看看吧。

一共分为以下五大类,分别简述。

一、stroke属性

stroke属性控制线条的宽度、笔形样式、线段连接方式或短划线图案。该属性的设置需要先创建BasicStroke对象,再调用setStroke()方法来设置。创建BasicStroke对象的方法有如下代码:

BasicStroke(float w): 指定线条宽w。
BasicStroke(float w, int cap, int join):
cap是端点样: CAP_BUTT(无修饰), CAP_ROUND(半圆形末端), CAP_SQUARE(方形末端, 默认值)。
Join定义两线段交汇处的连接方式: JOIN_BEVEL(无修饰), JOIN_MTTER(尖形末端, 默认值), JOIN_ROUND(圆形末端)。

二、paint属性

1.paint属性控制填充效果。先调用下面的方法确定填充效果,再用setPaint()方法设置。

代码如下:

GradientPaint(float x1, float y1, Color c1, float x2, flaot y2, Color c2): 从(x1, y1) 到(x2, y2) 颜色从c1渐变到c2。 其中: 参数c1, c2决定这个渐变色是从颜色c1渐变到颜色c2。 参数x1, y1, x2, y2决定了渐变的强弱, 即要求从点(x1, y1) 出发到达点(x2, y2), 颜色从c1变成c2。
GradientPaint(float x1, float y1, Color c1, float x2, float y2, Color c2, Boolean cyclic): 如果希望渐变到终点又是
起点的颜色, 应将cyclic设置为true。

三、transform属性

transform属性用来实现常用的图形平移、缩放和斜切等变换操作。

1. 创建AffineTransform对象;

2. 然后调用setTransform()方法设置transform属性;

3. 最后,用具有指定属性的Graphics2D对象绘制图形。创建AffineTransform对象的方法代码如下:

getRotateinstrance(double theta): 旋转theta弧度。
getRotateInstance(double theta, dioble x, double y): 绕旋转中心(x, y) 旋转。
getScaleInstance(double sx, double sy): x和y 方向分别按sx, sy比例变换。
getTranslateInstance(double tx, double ty): 平移变换。
getShearInstance(double shx, double shy): 斜切变换, shx和shy指定斜拉度。
也可以先创建一个没有transform属性的AffineTransform对象, 然后用以下方法指定图形平移、 旋转、 缩放变换属性。
transelate(double dx, double dy): 将图形在x轴方向平移dx像素。
scale(double sx, double sy): 图形在x轴方向缩放sx倍, 纵向缩放sy倍。
rotate(double arc, double x, double y): 图形以点(x, y) 为轴点, 旋转arc弧度。

举例说明创建AffineTransform对象,代码如下:

AffineTransform trans = new AffineTransform();
为AffineTransform对象指定绕点旋转变换属性:
Trans.rotate(50.0 * 3.1415927 / 180.0, 90, 80);

然后为Graphics2D的对象g2d设置具有上述旋转变换功能的“画笔”,代码如下:

Graphics2D g2d = (Graphics2D) g;
g2d.setTranstorm(trans);

最后,以图形对象为参数调用具有变换功能的Graphics2D对象的draw()方法。

假设已有一个二次曲线对象curve,实现用上述旋转功能的g2d对象绘制这条二次曲线,代码如下:

g2d.draw(curve);

四、clip属性

clip属性用于实现剪裁效果。设置剪裁属性可调用setClip()方法确定剪裁区的Shape。连续多个setClip()得到它们交集的剪裁区。

五、composit属性

composit属性设置图形重叠区域的效果。

1. 先用方法AlphaComposite.getInstance(int rule, float alpha)得到AlphaComposite对象;

2. 再通过setComposite()方法设置混合效果。Alpha值的范围为0.0f(完全透明)-0.1f(完全不透明)。

以上就是关于java中Graphics2D类属性有哪些的详细解析。想要了解更多java基础以及常见问题,敬请关注奇Q工具网。

推荐阅读:

java访问对象的属性和行为详细介绍

java this关键字详解,this.属性名

java类的属性,成员变量的定义和声明详解