java.lang.Object java.awt.BasicStroke
BasicStroke
类定义针对图形图元轮廓呈现属性的一个基本集合,这些图元使用 Graphics2D
对象呈现,而该对象的 Stroke 属性设置为此 BasicStroke
。由 BasicStroke
定义的呈现属性描述了用画笔沿 Shape
的轮廓绘制的某个标记的形状,以及应用在 Shape
路径线段的末端和连接处的装饰。 这些呈现属性包括:
SEG_CLOSE
。三个不同的装饰是:
CAP_BUTT
、
CAP_ROUND
和
CAP_SQUARE
。
SEG_CLOSE
封闭的子路径端点的交汇处应用的装饰。三个不同的装饰是:
JOIN_BEVEL
、
JOIN_MITER
和
JOIN_ROUND
。
Shape
参数相同的坐标系中测量的。当
Graphics2D
对象在执行其
draw
方法之一期间使用
Stroke
对象重定义一条路径时,在应用
Graphics2D
转换属性之前,要提供原始形式的几何形状。所以,诸如画笔宽度之类的属性是在
Graphics2D
对象的用户空间坐标系中解释的,并受制于特定
Graphics2D
中用户空间到设备空间转换的缩放和剪切效果。例如,呈现形状的轮廓宽度不仅由此
BasicStroke
的 width 属性确定,还由
Graphics2D
对象的 transform 属性确定。请考虑以下代码:
// sets the Graphics2D object's Tranform attribute g2d.scale(10, 10); // sets the Graphics2D object's Stroke attribute g2d.setStroke(new BasicStroke(1.5f));假定不对
Graphics2D
对象添加其他任何缩放转换,那么所得到的线条宽度大约是 15 个像素宽。如示例代码所述,浮点线提供了更好的精度,特别是在对
Graphics2D
对象使用大型转换时。当一条线是斜线时,具体的宽度取决于在追踪理论上已加宽的轮廓时,呈现管线选择填充哪些像素。选择开启哪些像素受到 antialiasing 属性的影响,因为抗锯齿呈现管线可以选择给部分覆盖的像素着色。
关于用户空间坐标和呈现过程的更多信息,请参阅 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(float width) 构造一个具有指定线条宽度以及 cap 和 join 风格的默认值的实心 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 。 |
方法摘要 | |
---|---|
Shape |
createStrokedShape(Shape s) 返回一个 Shape ,它在内部定义了指定 Shape 的笔划轮廓。 |
boolean |
equals(Object obj) 测试指定对象与此 BasicStroke 是否相等,首先测试指定对象是否是一个 BasicStroke ,然后将其宽度、连接、cap、斜接限制、虚线和虚线相位属性与 BasicStroke 的那些属性进行比较。 |
float[] |
getDashArray() 返回表示虚线线段长度的数组。 |
float |
getDashPhase() 返回当前虚线相位。 |
int |
getEndCap() 返回端点的 cap 样式。 |
int |
getLineJoin() 返回线条连接样式。 |
float |
getLineWidth() 返回线条的宽度。 |
float |
getMiterLimit() 返回斜接的限制。 |
int |
hashCode() 返回此笔划的哈希码。 |
从类 java.lang.Object 继承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
字段详细信息 |
---|
public static final int JOIN_MITER
public static final int JOIN_ROUND
public static final int JOIN_BEVEL
public static final int CAP_BUTT
public static final int CAP_ROUND
public static final int CAP_SQUARE
构造方法详细信息 |
---|
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
- 斜接处的剪裁限制。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
- 如果所有 dash 的长度都为零。
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
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
public BasicStroke(float width)
BasicStroke
。
width
-
BasicStroke
的宽度
IllegalArgumentException
- 如果
width
为负
public BasicStroke()
BasicStroke
。默认属性是宽度为 1.0 的实线、CAP_SQUARE、JOIN_MITER 和 10.0 的斜接限制。
方法详细信息 |
---|
public Shape createStrokedShape(Shape s)
Shape
,它在内部定义了指定
Shape
的笔划轮廓。
Stroke
中的
createStrokedShape
s
- 要勾画的
Shape
边界
Shape
。
public float getLineWidth()
Graphics2D
类的注释。
BasicStroke
的线条宽度。
Graphics2D
public int getEndCap()
BasicStroke
端点的 cap 样式,它是定义可能的端点 cap 样式的静态
int
值之一。
public int getLineJoin()
BasicStroke
的线条连接样式,它是定义可能的线条连接样式的静态
int
值之一。
public float getMiterLimit()
BasicStroke
的斜接限制。
public float[] getDashArray()
Shape
的轮廓时,勾画的用户空间距离将被累积。距离值被用来在虚线数组中建立索引。当画笔的当前累积距离映射到虚线数组的某一个元素时,画笔是不透明的,否则是透明的。
public float getDashPhase()
float
值形式的虚线相位。
public int hashCode()
Object.equals(java.lang.Object)
,
Hashtable
public boolean equals(Object obj)
BasicStroke
是否相等,首先测试指定对象是否是一个
BasicStroke
,然后将其宽度、连接、cap、斜接限制、虚线和虚线相位属性与
BasicStroke
的那些属性进行比较。
obj
- 与此
BasicStroke
进行比较的指定对象
true
;否则返回
false
。
Object.hashCode()
,
Hashtable