java.lang.Object
java.awt.BasicStroke
- 所有已实现的接口:
-
Stroke
BasicStroke
类定义了用于图形基本原始轮廓的一组渲染属性,这些属性由一个具有其Stroke属性设置为此BasicStroke
的Graphics2D
对象渲染。由BasicStroke
定义的渲染属性描述了沿着Shape
轮廓绘制的笔的形状以及应用于Shape
路径段端点和连接处的装饰。这些渲染属性包括:
- 宽度
- 笔的宽度,垂直于笔轨迹测量。
- 端点
-
应用于未闭合子路径和虚线段端点的装饰。如果子路径在同一点开始和结束,且没有CLOSE段,则仍被视为未闭合。有三种不同的装饰:
CAP_BUTT
、CAP_ROUND
和CAP_SQUARE
。 - 线连接
-
应用于两个路径段的交点以及使用
SEG_CLOSE
关闭的子路径端点的交点处的装饰。有三种不同的装饰:JOIN_BEVEL
、JOIN_MITER
和JOIN_ROUND
。 - 斜接限制
- 用于修剪具有JOIN_MITER装饰的线连接的限制。当斜接长度与笔宽的比率大于斜接限制值时,线连接被修剪。斜接长度是斜接的对角线长度,即内角和外角交点之间的距离。两条线段形成的角度越小,斜接长度越长,交点的角度越锐。默认的斜接限制值为10.0f,导致所有小于11度的角度被修剪。修剪斜接将线连接的装饰转换为斜角。
- 虚线属性
- 定义如何通过交替使用不透明和透明部分来制作虚线模式。
Shape
相同的坐标系中测量。当Graphics2D
对象在执行其draw
方法之一期间使用Stroke
对象重新定义路径时,几何形状以其原始形式提供,然后应用Graphics2D
变换属性。因此,诸如笔宽之类的属性在Graphics2D
对象的用户空间坐标系中解释,并受该特定Graphics2D
中用户空间到设备空间变换的缩放和剪切效果影响。例如,以下代码:
假设没有添加其他缩放变换到// 设置Graphics2D对象的Transform属性 g2d.scale(10, 10); // 设置Graphics2D对象的Stroke属性 g2d.setStroke(new BasicStroke(1.5f));
Graphics2D
对象,结果线条宽度将约为15像素。正如示例代码所示,浮点线提供更好的精度,特别是当与Graphics2D
对象一起使用大型变换时。当一条线是对角线时,确切的宽度取决于渲染管道选择哪些像素填充以跟踪理论上加宽的轮廓。选择要打开的像素受抗锯齿属性的影响,因为抗锯齿渲染管道可以选择对部分覆盖的像素进行着色。
有关用户空间坐标系和渲染过程的更多信息,请参阅Graphics2D
类注释。
- 参见:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
以无添加装饰结束未闭合子路径和虚线段。static final int
以半径等于笔宽一半的圆形装饰结束未闭合子路径和虚线段。static final int
以方形投影结束未闭合子路径和虚线段,该投影延伸到段的末端距离等于线宽的一半。static final int
通过直线段连接宽轮廓的外角连接路径段。static final int
通过延伸它们的外边缘连接路径段。static final int
通过以线宽一半的半径圆角化角连接路径段。 -
Constructor Summary
ConstructorDescription构造具有所有属性默认值的新BasicStroke
。BasicStroke
(float width) 构造具有指定线宽的实线BasicStroke
,并具有端点和连接样式的默认值。BasicStroke
(float width, int cap, int join) 构造具有指定属性的实线BasicStroke
。BasicStroke
(float width, int cap, int join, float miterlimit) 构造具有指定属性的实线BasicStroke
。BasicStroke
(float width, int cap, int join, float miterlimit, float[] dash, float dash_phase) 构造具有指定属性的新BasicStroke
。 -
Method Summary
Modifier and TypeMethodDescription返回一个Shape
,其内部定义了指定Shape
的描边轮廓。boolean
通过首先测试其是否为BasicStroke
,然后将其宽度、连接、端点、斜接限制、虚线和虚线相位属性与此BasicStroke
的属性进行比较,测试指定对象是否等于此BasicStroke
。float[]
返回表示虚线段长度的数组。float
返回当前虚线相位。int
返回端点样式。int
返回线连接样式。float
返回线宽。float
返回斜接连接的限制。int
hashCode()
返回此笔画的哈希码。
-
Field Details
-
JOIN_MITER
通过延伸它们的外边缘连接路径段。- 参见:
-
JOIN_ROUND
通过以线宽一半的半径圆角化角连接路径段。- 参见:
-
JOIN_BEVEL
通过连接宽轮廓的外角连接路径段。- 参见:
-
CAP_BUTT
以无添加装饰结束未闭合子路径和虚线段。- 参见:
-
CAP_ROUND
以半径等于笔宽一半的圆形装饰结束未闭合子路径和虚线段。- 参见:
-
CAP_SQUARE
以方形投影结束未闭合子路径和虚线段,该投影延伸到段的末端距离等于线宽的一半。- 参见:
-
-
Constructor Details
-
BasicStroke
@ConstructorProperties({"lineWidth","endCap","lineJoin","miterLimit","dashArray","dashPhase"}) public BasicStroke(float width, int cap, int join, float miterlimit, float[] dash, float dash_phase) 构造具有指定属性的新BasicStroke
。- 参数:
-
width
- 此BasicStroke
的宽度。宽度必须大于或等于0.0f。如果宽度设置为0.0f,则根据目标设备和抗锯齿提示设置,笔画将呈现为可能的最细线。 -
cap
-BasicStroke
端点的装饰 -
join
- 路径段相遇处应用的装饰 -
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
- 如果虚线长度都为零。
-
BasicStroke
public BasicStroke(float width, int cap, int join, float miterlimit) 构造具有指定属性的实线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(float width, int cap, int join) 使用指定属性构造一个实心的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(float width) 使用指定线宽构造一个实心的BasicStroke
,并使用默认值设置端点和连接样式。- 参数:
-
width
-BasicStroke
的宽度 - 抛出:
-
IllegalArgumentException
- 如果width
为负数
-
BasicStroke
public BasicStroke()使用所有属性的默认值构造一个新的BasicStroke
。默认属性是宽度为 1.0 的实线、CAP_SQUARE、JOIN_MITER 和斜接限制为 10.0。
-
-
Method Details
-
createStrokedShape
返回一个Shape
,其内部定义了指定Shape
的描边轮廓。- 指定者:
-
createStrokedShape
在接口Stroke
- 参数:
-
s
- 要描边的Shape
边界 - 返回:
-
描边轮廓的
Shape
- 抛出:
-
NullPointerException
- 如果s
为null
-
getLineWidth
public float getLineWidth()返回线宽。线宽以用户空间表示,这是 Java 2D 中使用的默认坐标空间。有关用户空间坐标系的更多信息,请参阅Graphics2D
类的注释。- 返回:
-
此
BasicStroke
的线宽。 - 参见:
-
getEndCap
public int getEndCap()返回端点样式。- 返回:
-
BasicStroke
的端点样式,作为定义可能端点样式的静态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()返回此描边的哈希码。 -
equals
通过首先测试指定对象是否为BasicStroke
,然后比较其宽度、连接、端点、斜接限制、虚线和虚线相位属性与此BasicStroke
的属性是否相同,测试指定对象是否等于此BasicStroke
。
-