java描边_Java8 中文教程

您已经知道如何创建不同的几何图元和更复杂的形状。本类教您如何在图形中添加一些颜色和花式轮廓,并表示填充和抚摸:

填充 –是用纯色或颜色渐变或纹理图案对形状的内部绘画的过程

描边 –是应用笔触宽度,线条样式和颜色属性绘制形状轮廓的过程

要将花哨的线型和填充图案应用于几何图元,请在渲染之前更改Graphics2D上下文中的笔触和绘画属性。例如,通过创建适当的Stroke对象画一条虚线。要在呈现线条之前将此笔划添加到Graphics2D上下文中,请调用setStroke方法。同样,通过创建GradientPaint对象并将其添加到Graphics2D上下文,可以对Shape对象应用渐变填充。

以下代码行通过填充和描边上下文丰富了几何图元:

// draw RoundRectangle2D.Double

final static float dash1[] = {10.0f};

final static BasicStroke dashed =

new BasicStroke(1.0f,

BasicStroke.CAP_BUTT,

BasicStroke.JOIN_MITER,

10.0f, dash1, 0.0f);

g2.setStroke(dashed);

g2.draw(new RoundRectangle2D.Double(x, y,

rectWidth,

rectHeight,

10, 10));

78c0ca2ef94d738e12b958325e9fc71b.gif

// fill Ellipse2D.Double

redtowhite = new GradientPaint(0,0,color.RED,100, 0,color.WHITE);

g2.setPaint(redtowhite);

g2.fill (new Ellipse2D.Double(0, 0, 100, 50));

23c9df17abbda9a709cdf8a9d63be52e.gif

ShapesDemo2D.java代码示例表示存储和填充的其他实现。

定义花式线条样式和填充图案

使用 Java 2D Stroke和Paint类,您可以定义奇特的线条样式和填充图案。

Line Styles

线型由Graphics2D渲染上下文中的 stroke 属性定义。要设置笔触属性,请创建一个BasicStroke对象,并将其传递到Graphics2D setStroke方法中。

BasicStroke对象包含有关线宽,连接样式,端盖样式和破折号样式的信息。当使用draw方法渲染Shape时,将使用此信息。

“线宽”是垂直于其轨迹测量的线的粗细。线宽以用户坐标单位指定为float值,当使用默认转换时,线宽大约等于 1/72 英寸。

join style *是在两个线段相交处应用的装饰。 BasicStroke支持以下三种联接样式:

407460e4de8b6cc74af5972d7c3d30e1.gif

JOIN_BEVEL

a9b9426636f92809fee89864cd1196ae.gif

JOIN_MITER

33943dccf8e42d55403fd8e450af7ac9.gif

JOIN_ROUND

“端盖样式”是在线段结束处应用的装饰。 BasicStroke支持以下三种端盖样式:

59ae8ccdfa915e878eb5375ec1c63f45.gif

CAP_BUTT

4a8b92380b4cfd11783a07e18703bbcf.gif

CAP_ROUND

32a38bb34fd32ca698f3a61ec5e2433a.gif

CAP_SQUARE

虚线样式定义了沿着线的 Long 度应用的不透明和透明部分的图案。破折号样式由破折号数组和破折号阶段定义。 破折号数组定义破折号 Pattern。数组中的交替元素表示虚线 Long 度和以用户坐标为单位的虚线之间的间距的 Long 度。元素 0 代表第一个破折号,元素 1 代表第一个空格,依此类推。 破折号相位是破折号图案的offset量,也以用户坐标单位指定。虚线阶段指示将虚线图案的哪一部分应用于行的开头。

Fill Patterns

填充 Pattern 由Graphics2D渲染上下文中的 paint 属性定义的。要设置 paint 属性,请创建一个实现Paintinterface的对象的实例,并将其传递给Graphics2D setPaint方法。

以下三个类实现Paintinterface:Color,GradientPaint和TexturePaint。

要创建GradientPaint,请指定开始位置和颜色以及结束位置和颜色。渐变沿着连接两个位置的线从一种颜色到另一种颜色成比例地变化。例如:

2f7551b4f36676575be2f9d9c595e41b.gif

TexturePaint类的 Pattern 由BufferedImage类定义。要创建TexturePaint对象,请指定包含图案的图像以及用于复制和锚定图案的矩形。下图表示此功能:

bea00fab68ecf0e7601c46cce2e601f8.gif

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值