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
FieldsModifier and TypeFieldDescriptionstatic final int以无添加装饰结束未闭合子路径和虚线段。static final int以半径等于笔宽一半的圆形装饰结束未闭合子路径和虚线段。static final int以方形投影结束未闭合子路径和虚线段,该投影延伸到段的末端距离等于线宽的一半。static final int通过直线段连接宽轮廓的外角连接路径段。static final int通过延伸它们的外边缘连接路径段。static final int通过以线宽一半的半径圆角化角连接路径段。 -
Constructor Summary
ConstructorsConstructorDescription构造具有所有属性默认值的新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返回斜接连接的限制。inthashCode()返回此笔画的哈希码。
-
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。
-