|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.awt.geom
类 AffineTransform
java.lang.Object java.awt.geom.AffineTransform
- 所有已实现的接口:
- Serializable, Cloneable
-
public class AffineTransform
- extends Object
- implements Cloneable, Serializable
AffineTransform
类表示 2D 仿射变换,它执行从 2D 坐标到其他 2D 坐标的线性映射,保留了线的“直线性”和“平行性”。可以使用一系列平移、缩放、翻转、旋转和剪切来构造仿射变换。
这样的坐标变换可以使用一个 3 行乘 3 列的矩阵来表示,最后一行默认为 [ 0 0 1 ]。此矩阵将源坐标 (x, y)
变换为目标坐标 (x', y')
,方法是将坐标视为列向量,并用矩阵乘以坐标向量,步骤如下:
[ x'] [ m00 m01 m02 ] [ x ] [ m00x + m01y + m02 ] [ y'] = [ m10 m11 m12 ] [ y ] = [ m10x + m11y + m12 ] [ 1 ] [ 0 0 1 ] [ 1 ] [ 1 ]
- 另请参见:
- 序列化表格
字段摘要 | |
---|---|
static int |
TYPE_FLIP 此标志位指示此对象定义的变换除了执行其他标志位指定的变换外,还执行关于某个坐标轴的镜像翻转操作,此操作将常见的右旋坐标系更改为左旋坐标系。 |
static int |
TYPE_GENERAL_ROTATION 此标志位指示此对象定义的变换除了执行其他标志位指定的变换外,还执行任意角度的旋转操作。 |
static int |
TYPE_GENERAL_SCALE 此标志位指示此对象定义的变换除了执行其他标志位指定的变换外,还执行常规缩放操作。 |
static int |
TYPE_GENERAL_TRANSFORM 此常量指示此对象定义的变换执行输入坐标的任意转换操作。 |
static int |
TYPE_IDENTITY 此常量指示此对象定义的变换是恒等变换。 |
static int |
TYPE_MASK_ROTATION 此常量是所有旋转标志位的位掩码。 |
static int |
TYPE_MASK_SCALE 此常量是所有缩放标志位的位掩码。 |
static int |
TYPE_QUADRANT_ROTATION 此标志位指示此对象定义的变换除了执行其他标志位指定的变换外,还通过乘以 90 度的某个倍数执行象限旋转操作。 |
static int |
TYPE_TRANSLATION 此标志位指示此对象定义的变换除了执行其他标志位指定的变换外,还执行平移操作。 |
static int |
TYPE_UNIFORM_SCALE 此标志位指示此对象定义的变换除了执行其他标志位指定的变换外,还执行统一缩放操作。 |
构造方法摘要 | |
---|---|
AffineTransform() 构造一个表示 Identity 变换的新 AffineTransform 。 |
|
AffineTransform(AffineTransform Tx) 构造一个新 AffineTransform ,让它作为指定的 AffineTransform 对象的副本。 |
|
AffineTransform(double[] flatmatrix) 根据 double 精度值数组构造一个新 AffineTransform ,该数组要么表示 3x3 变换矩阵的 4 非平移条目,要么表示它的 6 可指定条目。 |
|
AffineTransform(double m00, double m10, double m01, double m11, double m02, double m12) 根据表示 3x3 变换矩阵 6 个可指定条目的 6 个 double 精度值构造一个新 AffineTransform 。 |
|
AffineTransform(float[] flatmatrix) 根据一个浮点值数组构造一个新 AffineTransform ,该数组要么表示 3x3 变换矩阵的 4 个非平移条目,要么表示其 6 个可指定条目。 |
|
AffineTransform(float m00, float m10, float m01, float m11, float m02, float m12) 根据表示 6 个 3x3 变换矩阵可指定条目的 6 个浮点值构造一个新 AffineTransform 。 |
方法摘要 | |
---|---|
Object |
clone() 返回此 AffineTransform 对象的副本。 |
void |
concatenate(AffineTransform Tx) 以最常用的方式将 AffineTransform Tx 连接到此 AffineTransform Cx,以提供由 Tx 映射到以前用户空间的新用户空间。 |
AffineTransform |
createInverse() 返回表示逆向变换的 AffineTransform 对象。 |
Shape |
createTransformedShape(Shape pSrc) 返回新的 Shape 对象,它由此变换变换的指定 Shape 的几何形状定义。 |
void |
deltaTransform(double[] srcPts, int srcOff, double[] dstPts, int dstOff, int numPts) 通过此变换变换相对距离向量数组。 |
Point2D |
deltaTransform(Point2D ptSrc, Point2D ptDst) 变换由 ptSrc 指定的相对距离向量并将结果存储在 ptDst 。 |
boolean |
equals(Object obj) 如果此 AffineTransform 与指定的参数表示相同的仿射坐标变换,则返回 true 。 |
double |
getDeterminant() 返回变换的矩阵表示形式的决定因子。 |
void |
getMatrix(double[] flatmatrix) 在 3x3 仿射变换矩阵中检索 6 个可指定值,并将其置于 double 精度值的数组中。 |
static AffineTransform |
getRotateInstance(double theta) 返回表示旋转变换的变换。 |
static AffineTransform |
getRotateInstance(double theta, double x, double y) 返回绕锚点旋转坐标的变换。 |
static AffineTransform |
getScaleInstance(double sx, double sy) 返回表示缩放变换的变换。 |
double |
getScaleX() 返回 3x3 仿射变换矩阵缩放元素 (m00) 的 X 坐标。 |
double |
getScaleY() 返回 3x3 仿射变换矩阵缩放元素 (m11) 的 Y 坐标。 |
static AffineTransform |
getShearInstance(double shx, double shy) 返回表示剪切变换的变换。 |
double |
getShearX() 返回 3x3 仿射变换矩阵剪切元素 (m01) 的 X 坐标。 |
double |
getShearY() 返回 3x3 仿射变换矩阵剪切元素 (m10) 的 Y 坐标。 |
static AffineTransform |
getTranslateInstance(double tx, double ty) 返回表示平移变换的变换。 |
double |
getTranslateX() 返回 3x3 仿射变换矩阵平移元素 (m02) 的 X 坐标。 |
double |
getTranslateY() 返回 3x3 仿射变换矩阵平移元素 (m12) 的 Y 坐标。 |
int |
getType() 检索描述此变换的转换属性的标志位。 |
int |
hashCode() 返回此变换的哈希码。 |
void |
inverseTransform(double[] srcPts, int srcOff, double[] dstPts, int dstOff, int numPts) 通过此变换逆向变换 double 精度坐标数组。 |
Point2D |
inverseTransform(Point2D ptSrc, Point2D ptDst) 逆向变换指定的 ptSrc 并将结果存储在 ptDst 中。 |
boolean |
isIdentity() 如果此 AffineTransform 是恒等变换,则返回 true 。 |
void |
preConcatenate(AffineTransform Tx) 以不常用的方式将 AffineTransform Tx 连接到此 AffineTransform Cx,从而 Tx 相对于绝对像素空间(而非相对于现有用户空间)修改坐标变换。 |
void |
rotate(double theta) 连接此变换与旋转变换。 |
void |
rotate(double theta, double x, double y) 连接此变换与绕锚点旋转坐标的变换。 |
void |
scale(double sx, double sy) 连接此变换与缩放变换。 |
void |
setToIdentity() 将此变换重置为 Identity 变换。 |
void |
setToRotation(double theta) 将此变换设置为旋转变换。 |
void |
setToRotation(double theta, double x, double y) 将此变换设置为平移的旋转变换。 |
void |
setToScale(double sx, double sy) 将此变换设置为缩放变换。 |
void |
setToShear(double shx, double shy) 将此变换设置为剪切变换。 |
void |
setToTranslation(double tx, double ty) 将此变换设置为平移变换。 |
void |
setTransform(AffineTransform Tx) 将此变换设置为指定 AffineTransform 对象中变换的副本。 |
void |
setTransform(double m00, double m10, double m01, double m11, double m02, double m12) 将此变换设置为 6 个 double 精度值指定的矩阵。 |
void |
shear(double shx, double shy) 连接此变换与剪切变换。 |
String |
toString() 返回表示此 Object 值的 String 。 |
void |
transform(double[] srcPts, int srcOff, double[] dstPts, int dstOff, int numPts) 通过此变换变换 double 精度坐标数组。 |
void |
transform(double[] srcPts, int srcOff, float[] dstPts, int dstOff, int numPts) 通过此变换变换 double 精度坐标数组并将结果存储在 float 数组中。 |
void |
transform(float[] srcPts, int srcOff, double[] dstPts, int dstOff, int numPts) 通过此变换变换浮点坐标数组并将结果存储在 double 数组中。 |
void |
transform(float[] srcPts, int srcOff, float[] dstPts, int dstOff, int numPts) 通过此变换变换浮点坐标数组。 |
void |
transform(Point2D[] ptSrc, int srcOff, Point2D[] ptDst, int dstOff, int numPts) 通过此变换变换点对象数组。 |
Point2D |
transform(Point2D ptSrc, Point2D ptDst) 变换指定的 ptSrc 并将结果存储在 ptDst 中。 |
void |
translate(double tx, double ty) 连接此变换与平移变换。 |
从类 java.lang.Object 继承的方法 |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
字段详细信息 |
---|
TYPE_IDENTITY
public static final int TYPE_IDENTITY
- 此常量指示此对象定义的变换是恒等变换。恒等变换是一种输出坐标始终与输入坐标相同的变换。如果此变换不是恒等变换,则类型要么是常量 GENERAL_TRANSFORM,要么是此变换执行的不同坐标转换的适当标志位的组合。
TYPE_TRANSLATION
public static final int TYPE_TRANSLATION
- 此标志位指示此对象定义的变换除了执行其他标志位指定的变换外,还执行平移操作。平移按照常量 x 和 y 移动坐标,不改变向量的长度和角度。
TYPE_UNIFORM_SCALE
public static final int TYPE_UNIFORM_SCALE
- 此标志位指示此对象定义的变换除了执行其他标志位指定的变换外,还执行统一缩放操作。统一缩放在 x 和 y 方向上使用相同的量乘以向量的长度,不改变向量间的角度。此标志位与 TYPE_GENERAL_SCALE 标志位互斥。
TYPE_GENERAL_SCALE
public static final int TYPE_GENERAL_SCALE
- 此标志位指示此对象定义的变换除了执行其他标志位指定的变换外,还执行常规缩放操作。常规缩放在 x 和 y 方向上使用不同的量乘以向量的长度,不改变垂直向量之间的角度。此标志位与 TYPE_UNIFORM_SCALE 标志位互斥。
TYPE_MASK_SCALE
public static final int TYPE_MASK_SCALE
- 此常量是所有缩放标志位的位掩码。
TYPE_FLIP
public static final int TYPE_FLIP
- 此标志位指示此对象定义的变换除了执行其他标志位指定的变换外,还执行关于某个坐标轴的镜像翻转操作,此操作将常见的右旋坐标系更改为左旋坐标系。右旋坐标系按逆时针方向旋转 X 正半轴能覆盖 Y 正半轴,类似于凝视拇指末端时右手其余手指弯曲的方向。左旋坐标系按顺时针方向旋转 X 正半轴能覆盖 Y 正半轴,类似于左手手指弯曲的方向。不存在确定初始反转或镜像变换角度的数学方式,因为给定适当的调整旋转后,反转的所有角度都相同。
TYPE_QUADRANT_ROTATION
public static final int TYPE_QUADRANT_ROTATION
- 此标志位指示此对象定义的变换除了执行其他标志位指定的变换外,还通过乘以 90 度的某个倍数执行象限旋转操作。旋转按相同的量更改向量的角度,不管向量的初始方向如何,也不改变向量的长度。此标志位与 TYPE_GENERAL_ROTATION 标志互斥。