Module  java.desktop
软件包  java.awt

Class 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_BUTTCAP_ROUND ,并CAP_SQUARE
    线连接
    在两个路径段的交点处和在使用SEG_CLOSE关闭的子路径的端点的交点处应用的装饰。 三个不同的装饰是: JOIN_BEVELJOIN_MITER ,并JOIN_ROUND
    斜角极限
    修剪具有JOIN_MITER装饰的线连接的限制。 当斜角长度与行程宽度的比率大于斜度值时,将修剪线连接。 斜角长度是斜角的对角线长度,它是交点的内角和外角之间的距离。 由两个线段形成的角度越小,斜角越长,交叉角越锐。 10.0f的默认miterlimit值会导致所有小于11度的角度被修剪。 修剪斜纹体将线接合的装饰转换为斜角。
    破折号属性
    定义如何通过在不透明和透明部分之间交替来制作破折号。
    指定测量值和控制返回轮廓形状的距离的所有属性都与原始的无Shape参数Shape Shape 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
    • 字段详细信息

      • 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,并且 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具有指定的行宽,并使用上限和连接样式的默认值。
        参数
        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值。
      • equals

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