Module java.desktop
Package java.awt

Class BasicStroke

java.lang.Object
java.awt.BasicStroke
所有已实现的接口:
Stroke

public class BasicStroke extends Object implements Stroke
BasicStroke类定义了用于图形基本原始轮廓的一组渲染属性,这些属性由一个具有其Stroke属性设置为此BasicStrokeGraphics2D对象渲染。由BasicStroke定义的渲染属性描述了沿着Shape轮廓绘制的笔的形状以及应用于Shape路径段端点和连接处的装饰。这些渲染属性包括:
宽度
笔的宽度,垂直于笔轨迹测量。
端点
应用于未闭合子路径和虚线段端点的装饰。如果子路径在同一点开始和结束,且没有CLOSE段,则仍被视为未闭合。有三种不同的装饰: CAP_BUTTCAP_ROUNDCAP_SQUARE
线连接
应用于两个路径段的交点以及使用SEG_CLOSE关闭的子路径端点的交点处的装饰。有三种不同的装饰: JOIN_BEVELJOIN_MITERJOIN_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

    Fields
    Modifier and Type
    Field
    Description
    static final int
    以无添加装饰结束未闭合子路径和虚线段。
    static final int
    以半径等于笔宽一半的圆形装饰结束未闭合子路径和虚线段。
    static final int
    以方形投影结束未闭合子路径和虚线段,该投影延伸到段的末端距离等于线宽的一半。
    static final int
    通过直线段连接宽轮廓的外角连接路径段。
    static final int
    通过延伸它们的外边缘连接路径段。
    static final int
    通过以线宽一半的半径圆角化角连接路径段。
  • Constructor Summary

    Constructors
    Constructor
    Description
    构造具有所有属性默认值的新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 Type
    Method
    Description
    返回一个Shape,其内部定义了指定Shape的描边轮廓。
    boolean
    equals(Object obj)
    通过首先测试其是否为BasicStroke,然后将其宽度、连接、端点、斜接限制、虚线和虚线相位属性与此BasicStroke的属性进行比较,测试指定对象是否等于此BasicStroke
    float[]
    返回表示虚线段长度的数组。
    float
    返回当前虚线相位。
    int
    返回端点样式。
    int
    返回线连接样式。
    float
    返回线宽。
    float
    返回斜接连接的限制。
    int
    返回此笔画的哈希码。

    Methods declared in class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • JOIN_MITER

      @Native public static final int JOIN_MITER
      通过延伸它们的外边缘连接路径段。
      参见:
    • JOIN_ROUND

      @Native public static final int JOIN_ROUND
      通过以线宽一半的半径圆角化角连接路径段。
      参见:
    • JOIN_BEVEL

      @Native public static final int JOIN_BEVEL
      通过连接宽轮廓的外角连接路径段。
      参见:
    • CAP_BUTT

      @Native public static final int CAP_BUTT
      以无添加装饰结束未闭合子路径和虚线段。
      参见:
    • CAP_ROUND

      @Native public static final int CAP_ROUND
      以半径等于笔宽一半的圆形装饰结束未闭合子路径和虚线段。
      参见:
    • CAP_SQUARE

      @Native public static final int 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

      public Shape createStrokedShape(Shape s)
      返回一个 Shape,其内部定义了指定 Shape 的描边轮廓。
      指定者:
      createStrokedShape 在接口 Stroke
      参数:
      s - 要描边的 Shape 边界
      返回:
      描边轮廓的 Shape
      抛出:
      NullPointerException - 如果 snull
    • 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()
      返回此描边的哈希码。
      覆盖:
      hashCode 在类 Object
      返回:
      此描边的哈希码。
      参见:
    • equals

      public boolean equals(Object obj)
      通过首先测试指定对象是否为 BasicStroke,然后比较其宽度、连接、端点、斜接限制、虚线和虚线相位属性与此 BasicStroke 的属性是否相同,测试指定对象是否等于此 BasicStroke
      覆盖:
      equals 在类 Object
      参数:
      obj - 要与此 BasicStroke 进行比较的指定对象
      返回:
      如果宽度、连接、端点、斜接限制、虚线和虚线相位对两个对象都相同,则返回 true;否则返回 false
      参见: