- java.lang.Object
-
- java.awt.BasicStroke
-
- 实现的所有接口
-
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修饰的线连接的限制。 当斜接长度与笔划宽度的比率大于miterlimit值时,将修剪线连接。 斜接长度是斜接的对角线长度,它是交叉点的内角和外角之间的距离。 两个线段形成的角度越小,斜接长度越长,交叉角越尖锐。 默认的miterlimit值10.0f会导致所有小于11度的角度被修剪。 修剪斜角将线连接的装饰转换为斜角。
- 破折号属性
- 如何通过在不透明和透明部分之间交替来制作破折号图案的定义。
Shape参数相同的坐标系中测量。 当Graphics2D对象在执行其中一个draw方法期间使用Stroke对象重新定义路径时,在应用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
-
-
字段汇总
字段 变量和类型 字段 描述 static intCAP_BUTT结束未闭合的子路径和虚线段,没有添加装饰。static intCAP_ROUND使用圆形装饰结束未闭合的子路径和虚线段,半径等于笔宽度的一半。static intCAP_SQUARE使用方形投影结束未闭合的子路径和虚线段,该投影延伸超出线段的末端到等于线宽的一半的距离。static intJOIN_BEVEL通过将其宽轮廓的外角与直线段连接来连接路径段。static intJOIN_MITER通过扩展它们的外边缘直到它们相遇来连接路径段。static intJOIN_ROUND通过在半径为线宽的半径处对角进行四舍五入来连接路径段。
-
构造方法摘要
构造方法 构造器 描述 BasicStroke()构造一个新的BasicStroke,其默认BasicStroke所有属性。BasicStroke(float width)使用指定的线宽构造一个实体BasicStroke,并使用cap和join样式的默认值。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。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 ShapecreateStrokedShape(Shape s)返回Shape其内部定义指定Shape的描边轮廓。booleanequals(Object obj)测试指定对象是否等于此BasicStroke,首先测试它是否为BasicStroke,然后将其宽度,连接,上限,斜接限制,破折号和破折号阶段属性与此BasicStroke属性进行BasicStroke。float[]getDashArray()返回表示短划线段长度的数组。floatgetDashPhase()返回当前的破折号阶段。intgetEndCap()返回端盖样式。intgetLineJoin()返回行连接样式。floatgetLineWidth()返回行宽。floatgetMiterLimit()返回斜接连接的限制。inthashCode()返回此笔划的哈希码。
-
-
-
构造方法详细信息
-
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,则笔划将呈现为目标设备和antialias提示设置的最薄可能线。 -
cap-一个的端点的装饰BasicStroke -
join- 路径段相交处应用的装饰 -
miterlimit- 修剪斜接连接的限制。 miterlimit必须大于或等于1.0f。 -
dash- 表示dash模式的数组 -
dash_phase- 启动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,并使用cap和join样式的默认值。- 参数
-
width-所述的宽度BasicStroke - 异常
-
IllegalArgumentException- 如果width为负数
-
BasicStroke
public 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如果两个对象的宽度,连接,上限,斜接限制,短划线和短划线相位相同; 否则为false。 - 另请参见:
-
Object.hashCode(),HashMap
-
-