模块  java.desktop
软件包  java.awt

Class BasicStroke

  • 实现的所有接口
    Stroke

    public class BasicStroke
    extends Object
    implements Stroke
    BasicStroke类为图形基元的轮廓定义了一组基本渲染属性,这些属性使用Graphics2D对象进行渲染,该对象的Stroke属性设置为此BasicStroke BasicStroke定义的渲染属性描述了由沿Shape的轮廓绘制的笔所做的标记的形状以及应用于Shape的路径段的末端和连接处的Shape 这些渲染属性包括:
    宽度
    笔宽度,垂直于笔轨迹测量。
    结束
    应用于未闭合的子路径和虚线段的末端的装饰。 如果没有CLOSE段,则在同一点开始和结束的子路径仍被视为未关闭。 有关CLOSE段的更多信息,请参见SEG_CLOSE 三个不同的装饰是: CAP_BUTTCAP_ROUNDCAP_SQUARE
    线连接
    装饰应用于两个路径段的交叉点和使用SEG_CLOSE关闭的子路径的端点的交叉点。 三个不同的装饰是: JOIN_BEVELJOIN_MITERJOIN_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 int CAP_BUTT
      结束未闭合的子路径和虚线段,没有添加装饰。
      static int CAP_ROUND
      使用圆形装饰结束未闭合的子路径和虚线段,半径等于笔宽度的一半。
      static int CAP_SQUARE
      使用方形投影结束未闭合的子路径和虚线段,该投影延伸超出线段的末端到等于线宽的一半的距离。
      static int JOIN_BEVEL
      通过将其宽轮廓的外角与直线段连接来连接路径段。
      static int JOIN_MITER
      通过扩展它们的外边缘直到它们相遇来连接路径段。
      static int JOIN_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
    • 字段详细信息

      • 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
        使用方形投影结束未闭合的子路径和虚线段,该投影延伸超出线段的末端到等于线宽的一半的距离。
        另请参见:
        常数字段值
    • 构造方法详细信息

      • 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且 joinjoin
        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且 joinjoin
        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值。
      • equals

        public boolean equals​(Object obj)
        测试指定对象是否等于此 BasicStroke ,首先测试它是否为 BasicStroke ,然后将其宽度,连接,上限,斜接限制,破折号和破折号阶段属性与此 BasicStroke属性进行 BasicStroke
        重写:
        equalsObject
        参数
        obj - 要与此 BasicStroke进行比较的指定对象
        结果
        true如果两个对象的宽度,连接,上限,斜接限制,短划线和短划线相位相同; 否则为false
        另请参见:
        Object.hashCode()HashMap