- 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 intCAP_BUTT结束未封闭的子路径和划线段,没有添加装饰。static intCAP_ROUND用圆形装饰结束未封闭的子路径和划线段,半圆形的半径等于笔宽的一半。static intCAP_SQUARE结束未封闭的子路径和划线段,其中方块投影延伸超出段的末端至等于线宽一半的距离。static intJOIN_BEVEL通过连接其广泛轮廓的外角与直线段来连接路段。static intJOIN_MITER通过延伸它们的外边缘直到它们相遇来连接路段。static intJOIN_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 方法 描述 ShapecreateStrokedShape(Shape s)返回一个Shape其内部定义了指定的Shape的抚摸轮廓。booleanequals(Object obj)测试指定的对象是否等于BasicStroke,首先测试是否为BasicStroke,然后将其宽度,连接,上限,BasicStroke限制,破折号和破折号相位属性与该BasicStroke。float[]getDashArray()返回表示短划线段长度的数组。floatgetDashPhase()返回当前的虚线阶段。intgetEndCap()返回端帽样式。intgetLineJoin()返回行连接样式。floatgetLineWidth()返回行宽。floatgetMiterLimit()返回斜角连接的极限。inthashCode()返回此笔画的哈希码。
-
-
-
字段详细信息
-
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
-
-