返回介绍

java.awt 类 BasicStroke

发布于 2019-10-04 09:49:47 字数 14995 浏览 980 评论 0 收藏 0

java.lang.Object
  └java.awt.BasicStroke
所有已实现的接口:
Stroke

public class BasicStroke
extends Object
 
implements Stroke
 

BasicStroke 类定义针对图形图元轮廓呈现属性的一个基本集合,这些图元使用 Graphics2D 对象呈现,而该对象的 Stroke 属性设置为此 BasicStroke 。由 BasicStroke 定义的呈现属性描述了用画笔沿 Shape 的轮廓绘制的某个标记的形状,以及应用在 Shape 路径线段的末端和连接处的装饰。 这些呈现属性包括:

width
画笔的宽度,是垂直于画笔轨迹的测量值。
end caps
在未封闭子路径和虚线线段的末端应用的一些装饰。如果子路径没有 CLOSE 段,则在同一点上开始和结束的子路径仍被认为是未封闭的。关于 CLOSE 段的更多信息,请参阅 SEG_CLOSE 。三个不同的装饰是: CAP_BUTTCAP_ROUNDCAP_SQUARE
line joins
在两个路径线段的交汇处,以及使用 SEG_CLOSE 封闭的子路径端点的交汇处应用的装饰。三个不同的装饰是: JOIN_BEVELJOIN_MITERJOIN_ROUND
miter limit
对剪裁具有 JOIN_MITER 装饰的线接合点的限制。当斜接长度与笔划宽度的比大于 miterlimit 值时,需要剪裁线接合点。斜接长度是斜接的对角线长度,即交汇处的内棱角和外棱角之间的距离。两条线段形成的角度越小,斜接长度就越长,交汇处的角度就越尖锐。默认 miterlimit 值为 10.0f,它会使所有小于 11 度的角都被剪裁。剪裁斜接会使线接合点的装饰变成斜角。
dash attributes
关于如何通过在不透明和透明部分之间交替形成一个虚线模式的定义。

一些属性指定了控制返回轮廓形状的测量和距离,所有这些属性都是在与最初未绘制轮廓的 Shape 参数相同的坐标系统中测量的。当 Graphics2D 对象在执行其 draw 方法之一期间使用 Stroke 对象重定义一条路径时,在应用 Graphics2D 转换属性之前,要提供原始形式的几何形状。所以,诸如画笔宽度之类的属性是在 Graphics2D 对象的用户空间坐标系统中解释的,并受制于特定 Graphics2D 中用户空间到设备空间转换的缩放和剪切效果。例如,呈现形状的轮廓宽度不仅由此 BasicStroke 的 width 属性确定,还由 Graphics2D 对象的 transform 属性确定。请考虑以下代码:

// sets the Graphics2D object's Tranform attribute g2d.scale(10, 10); // sets the Graphics2D object's Stroke attribute g2d.setStroke(new BasicStroke(1.5f));

假定不对 Graphics2D 对象添加其他任何缩放转换,那么所得到的线条宽度大约是 15 个像素宽。如示例代码所述,浮点线提供了更好的精度,特别是在对 Graphics2D 对象使用大型转换时。当一条线是斜线时,具体的宽度取决于在追踪理论上已加宽的轮廓时,呈现管线选择填充哪些像素。选择开启哪些像素受到 antialiasing 属性的影响,因为抗锯齿呈现管线可以选择给部分覆盖的像素着色。

关于用户空间坐标和呈现过程的更多信息,请参阅 Graphics2D 类的注释。

另请参见:
Graphics2D

字段摘要
staticintCAP_BUTT

无装饰地结束未封闭的子路径和虚线线段。

staticintCAP_ROUND

使用半径等于画笔宽度一半的圆形装饰结束未封闭的子路径和虚线线段。

staticintCAP_SQUARE

使用正方形结束未封闭的子路径和虚线线段,正方形越过线段端点,并延长等于线条宽度一半的距离。

staticintJOIN_BEVEL

通过直线连接宽体轮廓的外角,将路径线段连接在一起。

staticintJOIN_MITER

扩展路径线段的外边缘,直到它们连接在一起。

staticintJOIN_ROUND

通过舍去半径为线长的一半的圆角,将路径线段连接在一起。

构造方法摘要
BasicStroke()

构造一个具有所有属性的默认值的新 BasicStroke

BasicStroke(floatwidth)

构造一个具有指定线条宽度以及 cap 和 join 风格的默认值的实心 BasicStroke

BasicStroke(floatwidth, intcap, intjoin)

构造一个具有指定属性的实心的 BasicStroke

BasicStroke(floatwidth, intcap, intjoin, floatmiterlimit)

构造一个具有指定属性的实心的 BasicStroke

BasicStroke(floatwidth, intcap, intjoin, floatmiterlimit, float[]dash, floatdash_phase)

构造一个具有指定属性的新 BasicStroke

方法摘要
ShapecreateStrokedShape(Shapes)

返回一个 Shape ,它在内部定义了指定 Shape 的笔划轮廓。

booleanequals(Objectobj)

测试指定对象与此 BasicStroke 是否相等,首先测试指定对象是否是一个 BasicStroke ,然后将其宽度、连接、cap、斜接限制、虚线和虚线相位属性与 BasicStroke 的那些属性进行比较。

voidfeedConsumer(sun.dc.path.PathConsumerconsumer, PathIteratorpi)
float[]getDashArray()

返回表示虚线线段长度的数组。

floatgetDashPhase()

返回当前虚线相位。

intgetEndCap()

返回端点的 cap 样式。

intgetLineJoin()

返回线条连接样式。

floatgetLineWidth()

返回线条的宽度。

floatgetMiterLimit()

返回斜接的限制。

inthashCode()

返回此笔划的哈希码。

从类 java.lang.Object 继承的方法
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait

字段详细信息

JOIN_MITER

public static final int JOIN_MITER
扩展路径线段的外边缘,直到它们连接在一起。
另请参见:
常量字段值

JOIN_ROUND

public static final int JOIN_ROUND
通过舍去半径为线长的一半的圆角,将路径线段连接在一起。
另请参见:
常量字段值

JOIN_BEVEL

public static final int JOIN_BEVEL
通过直线连接宽体轮廓的外角,将路径线段连接在一起。
另请参见:
常量字段值

CAP_BUTT

public static final int CAP_BUTT
无装饰地结束未封闭的子路径和虚线线段。
另请参见:
常量字段值

CAP_ROUND

public static final int CAP_ROUND
使用半径等于画笔宽度一半的圆形装饰结束未封闭的子路径和虚线线段。
另请参见:
常量字段值

CAP_SQUARE

public static final int CAP_SQUARE
使用正方形结束未封闭的子路径和虚线线段,正方形越过线段端点,并延长等于线条宽度一半的距离。
另请参见:
常量字段值

构造方法详细信息

BasicStroke

public BasicStroke(floatwidth,
                   intcap,
                   intjoin,
                   floatmiterlimit,
                   float[]dash,
                   floatdash_phase)
构造一个具有指定属性的新 BasicStroke
参数:
width - 此 BasicStroke 的宽度。此宽度必须大于或等于 0.0f。如果将宽度设置为 0.0f,则将笔划呈现为可用于目标设备和抗锯齿提示设置的最细线条。
cap - BasicStroke 端点的装饰
join - 应用在路径线段交汇处的装饰
miterlimit - 斜接处的剪裁限制。miterlimit 必须大于或等于 1.0f。
dash - 表示虚线模式的数组
dash_phase - 开始虚线模式的偏移量
抛出:
IllegalArgumentException - 如果 width 为负
IllegalArgumentException - 如果 cap 既不是 CAP_BUTT,也不是 CAP_ROUND 或 CAP_SQUARE
IllegalArgumentException - 如果 miterlimit 小于 1 并且 join 为 JOIN_MITER
IllegalArgumentException - 如果 join 既不是 JOIN_ROUND,也不是 JOIN_BEVEL 或 JOIN_MITER
IllegalArgumentException - 如果 dash_phase 为负并且 dash 不为 null
IllegalArgumentException - 如果 dash 的长度为零
IllegalArgumentException - 如果所有 dash 的长度都为零。

BasicStroke

public BasicStroke(floatwidth,
                   intcap,
                   intjoin,
                   floatmiterlimit)
构造一个具有指定属性的实心的 BasicStroke
参数:
width - BasicStroke 的宽度
cap - BasicStroke 端点的装饰
join - 应用在路径线段交汇处的装饰
miterlimit - 斜接处的剪裁限制
抛出:
IllegalArgumentException - 如果 width 为负
IllegalArgumentException - 如果 cap 既不是 CAP_BUTT,也不是 CAP_ROUND 或 CAP_SQUARE
IllegalArgumentException - 如果 miterlimit 小于 1 并且 join 为 JOIN_MITER
IllegalArgumentException - 如果 join 既不是 JOIN_ROUND,也不是 JOIN_BEVEL 或 JOIN_MITER

BasicStroke

public BasicStroke(floatwidth,
                   intcap,
                   intjoin)
构造一个具有指定属性的实心的 BasicStroke 。在允许使用默认值或线连接点未指定为 JOIN_MITER 的情况下,不需要 miterlimit 参数。
参数:
width - BasicStroke 的宽度
cap - BasicStroke 端点的装饰
join - 应用在路径线段交汇处的装饰
抛出:
IllegalArgumentException - 如果 width 为负
IllegalArgumentException - 如果 cap 既不是 CAP_BUTT,也不是 CAP_ROUND 或 CAP_SQUARE
IllegalArgumentException - 如果 join 既不是 JOIN_ROUND,也不是 JOIN_BEVEL 或 JOIN_MITER

BasicStroke

public BasicStroke(floatwidth)
构造一个具有指定线条宽度以及 cap 和 join 风格的默认值的实心 BasicStroke
参数:
width - BasicStroke 的宽度
抛出:
IllegalArgumentException - 如果 width 为负

BasicStroke

public BasicStroke()
构造一个具有所有属性的默认值的新 BasicStroke 。默认属性是宽度为 1.0 的实线、CAP_SQUARE、JOIN_MITER 和 10.0 的斜接限制。

方法详细信息

createStrokedShape

public Shape createStrokedShape(Shapes)
返回一个 Shape ,它在内部定义了指定 Shape 的笔划轮廓。
指定者:
接口 Stroke 中的 createStrokedShape
参数:
s - 要勾画的 Shape 边界
返回:
勾画了轮廓的 Shape

feedConsumer

public void feedConsumer(sun.dc.path.PathConsumerconsumer,
                         PathIteratorpi)

getLineWidth

public float getLineWidth()
返回线条的宽度。线条的宽度是在用户空间中表示的,此空间是 Java 2D 使用的默认坐标空间。关于用户空间坐标系统的更多信息,请参阅 Graphics2D 类的注释。
返回:
BasicStroke 的线条宽度。
另请参见:
Graphics2D

getEndCap

public int getEndCap()
返回端点的 cap 样式。
返回:
BasicStroke 端点的 cap 样式,它是定义可能的端点 cap 样式的静态 int 值之一。

getLineJoin

public int getLineJoin()
返回线条连接样式。
返回:
BasicStroke 的线条连接样式,它是定义可能的线条连接样式的静态 int 值之一。

getMiterLimit

public float getMiterLimit()
返回斜接的限制。
返回:
BasicStroke 的斜接限制。

getDashArray

public float[] getDashArray()
返回表示虚线线段长度的数组。数组中其他条目表示了不透明和透明虚线线段的用户空间长度。当勾画将被绘制的 Shape 的轮廓时,勾画的用户空间距离将被累积。距离值被用来在虚线数组中建立索引。当画笔的当前累积距离映射到虚线数组的某一个元素时,画笔是不透明的,否则是透明的。
返回:
虚线数组。

getDashPhase

public float getDashPhase()
返回当前虚线相位。虚线相位是在用户坐标中指定的一个距离,它表示虚线模式中的偏移量。换句话说,虚线相位定义了虚线模式中的点,该点将相应于笔划的起始点。
返回:
返回 float 值形式的虚线相位。

hashCode

public int hashCode()
返回此笔划的哈希码。
覆盖:
Object 中的 hashCode
返回:
此笔划的哈希码。
另请参见:
Object.equals(java.lang.Object) , Hashtable

equals

public boolean equals(Objectobj)
测试指定对象与此 BasicStroke 是否相等,首先测试指定对象是否是一个 BasicStroke ,然后将其宽度、连接、cap、斜接限制、虚线和虚线相位属性与 BasicStroke 的那些属性进行比较。
覆盖:
Object 中的 equals
参数:
obj - 与此 BasicStroke 进行比较的指定对象
返回:
如果两个对象的宽度、连接、cap、斜接限制、虚线和虚线相位相同,则返回 true ;否则返回 false
另请参见:
Object.hashCode() , Hashtable

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文