上次已经为大家介绍过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工具网。
推荐阅读: