- java.lang.Object
-
- java.awt.BasicStroke
-
- All Implemented Interfaces:
-
Stroke
public class BasicStroke extends Object implements Stroke
BasicStroke
类为图形基元的轮廓定义了一组基本的渲染属性,这些属性用一个Graphics2D
对象,其Stroke属性设置为BasicStroke
。 由BasicStroke
定义的渲染属性描述了由沿着Shape
的轮廓绘制的笔形成的标记的形状,以及应用于Shape的路径段的末端和连接处的Shape
。 这些呈现属性包括:- 宽度
- 笔宽,垂直于钢笔轨迹测量。
- 端帽
-
装饰应用于未封闭的子路径和划线段的末端。
如果没有CLOSE段,则在同一点开始和结束的子路径仍然被视为未关闭。
有关CLOSE段的更多信息,请参阅
SEG_CLOSE
。 三个不同的装饰是:CAP_BUTT
,CAP_ROUND
,并CAP_SQUARE
。 - 线连接
-
在两个路径段的交点处和在使用
SEG_CLOSE
关闭的子路径的端点的交点处应用的装饰。 三个不同的装饰是:JOIN_BEVEL
,JOIN_MITER
,并JOIN_ROUND
。 - 斜角极限
- 修剪具有JOIN_MITER装饰的线连接的限制。 当斜角长度与行程宽度的比率大于斜度值时,将修剪线连接。 斜角长度是斜角的对角线长度,它是交点的内角和外角之间的距离。 由两个线段形成的角度越小,斜角越长,交叉角越锐。 10.0f的默认miterlimit值会导致所有小于11度的角度被修剪。 修剪斜纹体将线接合的装饰转换为斜角。
- 破折号属性
- 定义如何通过在不透明和透明部分之间交替来制作破折号。
Shape
参数ShapeShape
。 当Graphics2D
对象使用Stroke
对象在执行其draw
方法之一期间重新定义路径时,在应用Graphics2D
变换属性之前,Graphics2D
原始格式提供几何。 因此,诸如笔宽度的属性在Graphics2D
对象的用户空间坐标系中被解释,并且受到特定Graphics2D
用户空间到设备空间变换的缩放和剪切效应的影响。 例如,渲染形状的轮廓的宽度不仅由该BasicStroke
的width属性BasicStroke
,而且由Graphics2D
对象的transform属性确定。 考虑这个代码:// sets the Graphics2D object's Transform attribute g2d.scale(10, 10); // sets the Graphics2D object's Stroke attribute g2d.setStroke(new BasicStroke(1.5f));
Graphics2D
对象中,生成的行将大约为15像素宽。 如示例代码所示,浮点线提供更好的精度,特别是当使用Graphics2D
对象的大型变换时。 当一条线是对角线时,确切的宽度取决于渲染管道如何选择要填充的像素,因为它跟踪了理论上的扩展轮廓。 由于抗锯齿渲染流水线可以选择对部分覆盖的像素进行颜色化,所以要打开的像素的选择受抗锯齿属性的影响。有关用户空间坐标系和渲染过程的更多信息,请参阅
Graphics2D
类注释。- 另请参见:
-
Graphics2D
-
-
Field Summary
Fields Modifier and Type Field 描述 static int
CAP_BUTT
结束未封闭的子路径和划线段,没有添加装饰。static int
CAP_ROUND
用圆形装饰结束未封闭的子路径和划线段,半圆形的半径等于笔宽的一半。static int
CAP_SQUARE
结束未封闭的子路径和划线段,其中方块投影延伸超出段的末端至等于线宽一半的距离。static int
JOIN_BEVEL
通过连接其广泛轮廓的外角与直线段来连接路段。static int
JOIN_MITER
通过延伸它们的外边缘直到它们相遇来连接路段。static int
JOIN_ROUND
通过以半角宽度的半径舍入角落来连接路径段。
-
构造方法摘要
构造方法 Constructor 描述 BasicStroke()
构造一个新的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
。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 Shape
createStrokedShape(Shape s)
返回一个Shape
其内部定义了指定的Shape
的抚摸轮廓。boolean
equals(Object obj)
测试指定的对象是否等于BasicStroke
,首先测试是否为BasicStroke
,然后将其宽度,连接,上限,BasicStroke
限制,破折号和破折号相位属性与该BasicStroke
。float[]
getDashArray()
返回表示短划线段长度的数组。float
getDashPhase()
返回当前的虚线阶段。int
getEndCap()
返回端帽样式。int
getLineJoin()
返回行连接样式。float
getLineWidth()
返回行宽。float
getMiterLimit()
返回斜角连接的极限。int
hashCode()
返回此笔画的哈希码。
-
-
-
字段详细信息
-
JOIN_MITER
@Native public static final int JOIN_MITER
通过延伸它们的外边缘直到它们相遇来连接路段。- 另请参见:
- Constant Field Values
-
JOIN_ROUND
@Native public static final int JOIN_ROUND
通过以半角宽度的半径舍入角落来连接路径段。- 另请参见:
- Constant Field Values
-
JOIN_BEVEL
@Native public static final int JOIN_BEVEL
通过连接其广泛轮廓的外角与直线段来连接路段。- 另请参见:
- Constant Field Values
-
CAP_BUTT
@Native public static final int CAP_BUTT
结束未封闭的子路径和划线段,没有添加装饰。- 另请参见:
- Constant Field Values
-
CAP_ROUND
@Native public static final int CAP_ROUND
用圆形装饰结束未封闭的子路径和划线段,半圆形的半径等于笔宽的一半。- 另请参见:
- Constant Field Values
-
CAP_SQUARE
@Native public static final int CAP_SQUARE
结束未封闭的子路径和划线段,其中方块投影延伸超出段的末端至等于线宽一半的距离。- 另请参见:
- Constant Field Values
-
-
构造方法详细信息
-
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。 如果width设置为0.0f,笔画将被渲染为目标设备的最薄可能的线和反锯齿提示设置。 -
cap
- 装饰的一端BasicStroke
-
join
- 路径段相遇的装饰 -
miterlimit
- 修剪斜接连接的限制。 斜度必须大于或等于1.0f。 -
dash
- 表示dash
模式的数组 -
dash_phase
- 启动破折号模式的偏移量 - 异常
-
IllegalArgumentException
- 如果width
为负数 -
IllegalArgumentException
- 如果cap
不是CAP_BUTT,CAP_ROUND或CAP_SQUARE -
IllegalArgumentException
- 如果miterlimit
小于1,并且join
是join
-
IllegalArgumentException
- 如果join
不是join
,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
-
IllegalArgumentException
- 如果join
不是join
,JOIN_BEVEL或JOIN_MITER
-
BasicStroke
public BasicStroke(float width, int cap, int join)
构造具有指定属性的实体BasicStroke
。 在允许默认值或者没有将线路连接指定为miterlimit
情况下,miterlimit
参数是不必要的。- 参数
-
width
- 宽度为BasicStroke
-
cap
- 装饰的一端BasicStroke
-
join
- 路径段相遇的装饰 - 异常
-
IllegalArgumentException
- 如果width
为负数 -
IllegalArgumentException
- 如果cap
不是CAP_BUTT,CAP_ROUND或CAP_SQUARE -
IllegalArgumentException
- 如果join
不是join
,JOIN_BEVEL或JOIN_MITER
-
BasicStroke
public BasicStroke(float width)
构造一个固定的BasicStroke
具有指定的行宽,并使用上限和连接样式的默认值。- 参数
-
width
- 宽度为BasicStroke
- 异常
-
IllegalArgumentException
- 如果width
为负数
-
BasicStroke
public BasicStroke()
构造一个新的BasicStroke
,其默认BasicStroke
所有属性。 默认属性是宽度为1.0的实线,CAP_SQUARE,JOIN_MITER,斜度限制为10.0。
-
-
方法详细信息
-
createStrokedShape
public Shape createStrokedShape(Shape s)
返回一个Shape
其内部定义了指定的Shape
的抚摸轮廓。- Specified by:
-
createStrokedShape
在接口Stroke
- 参数
-
s
-Shape
边界被抚摸 - 结果
-
Shape
的抚摸大纲。
-
getLineWidth
public float getLineWidth()
返回行宽。 线宽在用户空间中表示,这是Java 2D使用的默认坐标空间。 有关用户空间坐标系的更多信息,请参阅Graphics2D
类注释。- 结果
-
该线的宽度为
BasicStroke
。 - 另请参见:
-
Graphics2D
-
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()
返回此笔画的哈希码。- 重写:
-
hashCode
在Object
- 结果
- 这个笔画的哈希码。
- 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
equals
public boolean equals(Object obj)
测试指定的对象是否等于BasicStroke
,首先测试是否是BasicStroke
,然后将其宽度,连接,上限,BasicStroke
限制,破折号和破折号相位属性与该BasicStroke
。- 重写:
-
equals
在Object
- 参数
-
obj
- 与此BasicStroke
进行比较的指定对象 - 结果
-
true
如果两个对象的宽度,连接,上限,true
限制,破折号和破折号相位是相同的; 否则为false
。 - 另请参见:
-
Object.hashCode()
,HashMap
-
-