Foxit PDF SDK
CFX_Matrix类 参考

继承自 CFX_Object .

Public 成员函数

 CFX_Matrix ()
 构造一个单位变换矩阵。
 
 CFX_Matrix (FX_FLOAT a1, FX_FLOAT b1, FX_FLOAT c1, FX_FLOAT d1, FX_FLOAT e1, FX_FLOAT f1)
 用六个输入系数构造矩阵。 更多...
 
void Concat (FX_FLOAT a, FX_FLOAT b, FX_FLOAT c, FX_FLOAT d, FX_FLOAT e, FX_FLOAT f, FX_BOOL bPrepended=false)
 与另一个矩阵连接。 更多...
 
void Concat (const CFX_Matrix &m, FX_BOOL bPrepended=false)
 与另一个矩阵连接。 更多...
 
void ConcatInverse (const CFX_Matrix &m, FX_BOOL bPrepended=false)
 连接另一个矩阵的逆矩阵。 更多...
 
void Copy (const CFX_Matrix &m)
 从另一个矩阵复制系数。 更多...
 
FX_FLOAT GetA () const
 获取系数a。 更多...
 
FX_FLOAT GetB () const
 获取系数b。 更多...
 
FX_FLOAT GetC () const
 获取系数c。 更多...
 
FX_FLOAT GetD () const
 获取系数d。 更多...
 
FX_FLOAT GetE () const
 获取系数e。 更多...
 
FX_FLOAT GetF () const
 获取系数f。 更多...
 
FX_FLOAT GetUnitArea () const
 获取由两个单位向量组成的平行四边形的面积。 更多...
 
void GetUnitParallelogram (CFX_ParallelogramF &pg) const
 获取由两个单位向量组成的平行四边形。 更多...
 
void GetUnitRect (CFX_RectF &rect) const
 获取由两个单位向量组成的平行四边形的边界矩形。 更多...
 
CFX_FloatRect GetUnitRect () const
 获取由两个单位向量组成的平行四边形的边界矩形。 更多...
 
FX_FLOAT GetXUnit () const
 获取X方向的单位大小。 更多...
 
FX_FLOAT GetYUnit () const
 获取Y方向的单位大小。 更多...
 
FX_BOOL Is90Rotated () const
 此矩阵是否包含90度或-90度的旋转。 更多...
 
FX_BOOL IsIdentity () const
 确定矩阵是否为单位变换。 更多...
 
FX_BOOL IsInvertible () const
 确定矩阵是否可逆。 更多...
 
FX_BOOL IsScaled () const
 此矩阵是否仅包含缩放(或平移)。没有旋转。 更多...
 
void MatchRect (const CFX_FloatRect &dest, const CFX_FloatRect &src)
 获取将源矩形变换到目标矩形的矩阵。 更多...
 
FX_BOOL operator != (const CFX_Matrix &src) const
 比较(!=)运算符重载。比较两个矩阵。 更多...
 
FX_BOOL operator== (const CFX_Matrix &src) const
 比较(==)运算符重载。比较两个矩阵。 更多...
 
void Reset ()
 重置当前矩阵。 更多...
 
void Rotate (FX_FLOAT fRadian, FX_BOOL bPrepended=false)
 旋转矩阵。 更多...
 
void RotateAt (FX_FLOAT fRadian, FX_FLOAT x, FX_FLOAT y, FX_BOOL bPrepended=false)
 在指定位置旋转矩阵。 更多...
 
void Scale (FX_FLOAT sx, FX_FLOAT sy, FX_BOOL bPrepended=false)
 缩放矩阵。 更多...
 
void Set (FX_FLOAT a, FX_FLOAT b, FX_FLOAT c, FX_FLOAT d, FX_FLOAT e, FX_FLOAT f)
 更改矩阵中的系数。 更多...
 
void Set (const FX_FLOAT n[6])
 更改矩阵中的系数。 更多...
 
void SetIdentity ()
 将矩阵设置为单位变换矩阵。 更多...
 
void SetReverse (const CFX_Matrix &m)
 将另一个矩阵的逆矩阵的系数设置到此矩阵中。 更多...
 
void Shear (FX_FLOAT fAlphaRadian, FX_FLOAT fBetaRadian, FX_BOOL bPrepended=false)
 剪切矩阵。 更多...
 
void Transform (FX_FLOAT &x, FX_FLOAT &y) const
 变换一个点。 更多...
 
void Transform (FX_FLOAT x, FX_FLOAT y, FX_FLOAT &x1, FX_FLOAT &y1) const
 变换一个点。 更多...
 
FX_FLOAT TransformDistance (FX_FLOAT dx, FX_FLOAT dy) const
 变换由X和Y值指定的距离。 更多...
 
FX_INT32 TransformDistance (FX_INT32 dx, FX_INT32 dy) const
 变换由X和Y值指定的距离。 更多...
 
FX_FLOAT TransformDistance (FX_FLOAT distance) const
 变换距离。 更多...
 
void TransformParallelogram (CFX_ParallelogramF &pg) const
 变换一个平行四边形。 更多...
 
void TransformParallelogram (CFX_Parallelogram &pg) const
 变换一个平行四边形。 更多...
 
void TransformPoint (FX_FLOAT &x, FX_FLOAT &y) const
 变换由X和Y值指定的点。 更多...
 
void TransformPoint (FX_INT32 &x, FX_INT32 &y) const
 变换由X和Y值指定的点。 更多...
 
void TransformPoints (CFX_PointF *points, FX_INT32 iCount) const
 变换点数组。 更多...
 
void TransformPoints (CFX_Point *points, FX_INT32 iCount) const
 变换点数组。 更多...
 
void TransformRect (CFX_RectF &rect) const
 变换一个矩形并返回边界矩形。 结果矩形总是标准化的:left <= right,且 top <= bottom。 更多...
 
void TransformRect (CFX_Rect &rect) const
 变换一个矩形并返回边界矩形。 结果矩形总是标准化的:left <= right,且 top <= bottom。 更多...
 
void TransformRect (FX_FLOAT &left, FX_FLOAT &right, FX_FLOAT &top, FX_FLOAT &bottom) const
 变换一个矩形并返回边界矩形。 结果矩形总是标准化的:left <= right,且 bottom <= top。 更多...
 
void TransformRect (CFX_FloatRect &rect) const
 变换一个矩形并返回边界矩形。 结果矩形总是标准化的:left <= right,且 bottom <= top。 更多...
 
void TransformRect (FX_RECT &rect) const
 变换一个矩形并返回边界矩形。 结果矩形总是标准化的:left <= right,且 bottom <= top。 更多...
 
void TransformRoundRect (CFX_RoundRectF &rr) const
 变换一个圆角矩形。 更多...
 
void TransformRoundRect (CFX_RoundRect &rr) const
 变换一个圆角矩形。 更多...
 
void TransformVector (CFX_VectorF &v) const
 变换一个向量。 更多...
 
void TransformVector (CFX_Vector &v) const
 变换一个向量。 更多...
 
FX_FLOAT TransformXDistance (FX_FLOAT dx) const
 变换X距离。 更多...
 
FX_INT32 TransformXDistance (FX_INT32 dx) const
 变换X距离。 更多...
 
FX_FLOAT TransformYDistance (FX_FLOAT dy) const
 变换Y距离。 更多...
 
FX_INT32 TransformYDistance (FX_INT32 dy) const
 变换Y距离。 更多...
 
void Translate (FX_FLOAT x, FX_FLOAT y, FX_BOOL bPrepended=false)
 平移矩阵。 更多...
 
void TranslateI (FX_INT32 x, FX_INT32 y, FX_BOOL bPrepended=false)
 平移矩阵。使用整数值。 更多...
 

Public 属性

FX_FLOAT a
 系数a。
 
FX_FLOAT b
 系数b。
 
FX_FLOAT c
 系数c。
 
FX_FLOAT d
 系数d。
 
FX_FLOAT e
 系数e。
 
FX_FLOAT f
 系数f。
 

详细描述

仿射(线性)变换矩阵。

它定义了六个系数:a、b、c、d、e、f。 变换方程为: dest_x = a * src_x + c * src_y + e; dest_y = b * src_x + d * src_y + f;

构造及析构函数说明

◆ CFX_Matrix()

CFX_Matrix::CFX_Matrix ( FX_FLOAT  a1,
FX_FLOAT  b1,
FX_FLOAT  c1,
FX_FLOAT  d1,
FX_FLOAT  e1,
FX_FLOAT  f1 
)
inline

用六个输入系数构造矩阵。

参数
[in]a1输入系数a。
[in]b1输入系数b。
[in]c1输入系数c。
[in]d1输入系数d。
[in]e1输入系数e。
[in]f1输入系数f。

成员函数说明

◆ Concat() [1/2]

void CFX_Matrix::Concat ( FX_FLOAT  a,
FX_FLOAT  b,
FX_FLOAT  c,
FX_FLOAT  d,
FX_FLOAT  e,
FX_FLOAT  f,
FX_BOOL  bPrepended = false 
)

与另一个矩阵连接。

参数
[in]a输入矩阵的系数a。
[in]b输入矩阵的系数b。
[in]c输入矩阵的系数c。
[in]d输入矩阵的系数d。
[in]e输入矩阵的系数e。
[in]f输入矩阵的系数f。
[in]bPrepended如果为 true,连接矩阵在左侧相乘,否则在右侧相乘。
返回
无。

◆ Concat() [2/2]

void CFX_Matrix::Concat ( const CFX_Matrix m,
FX_BOOL  bPrepended = false 
)

与另一个矩阵连接。

参数
[in]m输入的矩阵。
[in]bPrepended如果为 true,连接矩阵在左侧相乘,否则在右侧相乘。
返回
无。

◆ ConcatInverse()

void CFX_Matrix::ConcatInverse ( const CFX_Matrix m,
FX_BOOL  bPrepended = false 
)

连接另一个矩阵的逆矩阵。

参数
[in]m输入的矩阵。
[in]bPrepended如果为 true,连接矩阵在左侧相乘,否则在右侧相乘。
返回
无。

◆ Copy()

void CFX_Matrix::Copy ( const CFX_Matrix m)
inline

从另一个矩阵复制系数。

参数
[in]m输入的矩阵。
返回
无。

◆ GetA()

FX_FLOAT CFX_Matrix::GetA ( ) const
inline

获取系数a。

返回
系数a。

◆ GetB()

FX_FLOAT CFX_Matrix::GetB ( ) const
inline

获取系数b。

返回
系数b。

◆ GetC()

FX_FLOAT CFX_Matrix::GetC ( ) const
inline

获取系数c。

返回
系数c。

◆ GetD()

FX_FLOAT CFX_Matrix::GetD ( ) const
inline

获取系数d。

返回
系数d。

◆ GetE()

FX_FLOAT CFX_Matrix::GetE ( ) const
inline

获取系数e。

返回
系数e。

◆ GetF()

FX_FLOAT CFX_Matrix::GetF ( ) const
inline

获取系数f。

返回
系数f。

◆ GetUnitArea()

FX_FLOAT CFX_Matrix::GetUnitArea ( ) const

获取由两个单位向量组成的平行四边形的面积。

返回
由两个单位向量组成的平行四边形的面积。

◆ GetUnitParallelogram()

void CFX_Matrix::GetUnitParallelogram ( CFX_ParallelogramF pg) const

获取由两个单位向量组成的平行四边形。

参数
[out]pg接收输出的单位平行四边形。
返回
无。

◆ GetUnitRect() [1/2]

void CFX_Matrix::GetUnitRect ( CFX_RectF rect) const

获取由两个单位向量组成的平行四边形的边界矩形。

参数
[out]rect接收输出的单位矩形。
返回
无。

◆ GetUnitRect() [2/2]

CFX_FloatRect CFX_Matrix::GetUnitRect ( ) const

获取由两个单位向量组成的平行四边形的边界矩形。

返回
单位矩形。

◆ GetXUnit()

FX_FLOAT CFX_Matrix::GetXUnit ( ) const

获取X方向的单位大小。

返回
X方向的单位大小。

◆ GetYUnit()

FX_FLOAT CFX_Matrix::GetYUnit ( ) const

获取Y方向的单位大小。

返回
Y方向的单位大小。

◆ Is90Rotated()

FX_BOOL CFX_Matrix::Is90Rotated ( ) const

此矩阵是否包含90度或-90度的旋转。

返回
true表示当前矩阵包含90度或-90度的旋转,false表示不包含。

◆ IsIdentity()

FX_BOOL CFX_Matrix::IsIdentity ( ) const
inline

确定矩阵是否为单位变换。

返回
true表示当前矩阵是单位矩阵,false表示不是。

◆ IsInvertible()

FX_BOOL CFX_Matrix::IsInvertible ( ) const

确定矩阵是否可逆。

返回
true表示当前矩阵可逆,false表示不可逆。

◆ IsScaled()

FX_BOOL CFX_Matrix::IsScaled ( ) const

此矩阵是否仅包含缩放(或平移)。没有旋转。

返回
true表示当前矩阵仅包含缩放(或平移),false表示不是。

◆ MatchRect()

void CFX_Matrix::MatchRect ( const CFX_FloatRect dest,
const CFX_FloatRect src 
)

获取将源矩形变换到目标矩形的矩阵。

参数
[in]dest目标矩形。
[in]src源矩形。
返回
无。

◆ operator !=()

FX_BOOL CFX_Matrix::operator != ( const CFX_Matrix src) const
inline

比较(!=)运算符重载。比较两个矩阵。

参数
[in]src要比较的矩阵。
返回
true表示不相等,false表示相等。

◆ operator==()

FX_BOOL CFX_Matrix::operator== ( const CFX_Matrix src) const
inline

比较(==)运算符重载。比较两个矩阵。

参数
[in]src要比较的矩阵。
返回
true表示相等,false表示不相等。

◆ Reset()

void CFX_Matrix::Reset ( )
inline

重置当前矩阵。

返回
无。

◆ Rotate()

void CFX_Matrix::Rotate ( FX_FLOAT  fRadian,
FX_BOOL  bPrepended = false 
)

旋转矩阵。

参数
[in]fRadian以弧度为单位的旋转角度。
[in]bPrepended如果为 true,旋转矩阵在左侧相乘,否则在右侧相乘。
返回
无。

◆ RotateAt()

void CFX_Matrix::RotateAt ( FX_FLOAT  fRadian,
FX_FLOAT  x,
FX_FLOAT  y,
FX_BOOL  bPrepended = false 
)

在指定位置旋转矩阵。

参数
[in]fRadian以弧度为单位的旋转角度。
[in]x旋转的X坐标。
[in]y旋转的Y坐标。
[in]bPrepended如果为 true,旋转矩阵在左侧相乘,否则在右侧相乘。
返回
无。

◆ Scale()

void CFX_Matrix::Scale ( FX_FLOAT  sx,
FX_FLOAT  sy,
FX_BOOL  bPrepended = false 
)

缩放矩阵。

参数
[in]sxX方向的缩放系数。
[in]syY方向的缩放系数。
[in]bPrepended如果为 true,缩放矩阵在左侧相乘,否则在右侧相乘。
返回
无。

◆ Set() [1/2]

void CFX_Matrix::Set ( FX_FLOAT  a,
FX_FLOAT  b,
FX_FLOAT  c,
FX_FLOAT  d,
FX_FLOAT  e,
FX_FLOAT  f 
)

更改矩阵中的系数。

参数
[in]a输入系数a。
[in]b输入系数b。
[in]c输入系数c。
[in]d输入系数d。
[in]e输入系数e。
[in]f输入系数f。
返回
无。

◆ Set() [2/2]

void CFX_Matrix::Set ( const FX_FLOAT  n[6])

更改矩阵中的系数。

参数
[in]n输入的系数数组。
返回
无。

◆ SetIdentity()

void CFX_Matrix::SetIdentity ( )
inline

将矩阵设置为单位变换矩阵。

返回
无。

◆ SetReverse()

void CFX_Matrix::SetReverse ( const CFX_Matrix m)

将另一个矩阵的逆矩阵的系数设置到此矩阵中。

参数
[in]m输入的矩阵。
返回
无。

◆ Shear()

void CFX_Matrix::Shear ( FX_FLOAT  fAlphaRadian,
FX_FLOAT  fBetaRadian,
FX_BOOL  bPrepended = false 
)

剪切矩阵。

参数
[in]fAlphaRadianX轴的剪切角度。
[in]fBetaRadianY轴的剪切角度。
[in]bPrepended如果为 true,剪切矩阵在左侧相乘,否则在右侧相乘。
返回
无。

◆ Transform() [1/2]

void CFX_Matrix::Transform ( FX_FLOAT x,
FX_FLOAT y 
) const
inline

变换一个点。

参数
[in,out]x点的输入X坐标,并接收输出的变换后X坐标。
[in,out]y点的输入Y坐标,并接收输出的变换后Y坐标。
返回
无。

◆ Transform() [2/2]

void CFX_Matrix::Transform ( FX_FLOAT  x,
FX_FLOAT  y,
FX_FLOAT x1,
FX_FLOAT y1 
) const
inline

变换一个点。

参数
[in]x点的输入X坐标。
[in]y点的输入Y坐标。
[out]x1接收输出的变换后X坐标。
[out]y1接收输出的变换后Y坐标。
返回
无。

◆ TransformDistance() [1/3]

FX_FLOAT CFX_Matrix::TransformDistance ( FX_FLOAT  dx,
FX_FLOAT  dy 
) const

变换由X和Y值指定的距离。

参数
[in]dx输入的X值。
[in]dy输入的Y值。
返回
变换后的距离。

◆ TransformDistance() [2/3]

FX_INT32 CFX_Matrix::TransformDistance ( FX_INT32  dx,
FX_INT32  dy 
) const

变换由X和Y值指定的距离。

参数
[in]dx输入的X值。
[in]dy输入的Y值。
返回
变换后的距离。

◆ TransformDistance() [3/3]

FX_FLOAT CFX_Matrix::TransformDistance ( FX_FLOAT  distance) const

变换距离。

参数
[in]distance输入的距离。
返回
变换后的距离。

◆ TransformParallelogram() [1/2]

void CFX_Matrix::TransformParallelogram ( CFX_ParallelogramF pg) const

变换一个平行四边形。

参数
[in,out]pg输入的平行四边形,并接收输出的变换后平行四边形。
返回
无。

◆ TransformParallelogram() [2/2]

void CFX_Matrix::TransformParallelogram ( CFX_Parallelogram pg) const

变换一个平行四边形。

参数
[in,out]pg输入的平行四边形,并接收输出的变换后平行四边形。
返回
无。

◆ TransformPoint() [1/2]

void CFX_Matrix::TransformPoint ( FX_FLOAT x,
FX_FLOAT y 
) const

变换由X和Y值指定的点。

参数
[in,out]x点的输入X坐标,并接收输出的变换后X坐标。
[in,out]y点的输入Y坐标,并接收输出的变换后Y坐标。
返回
无。

◆ TransformPoint() [2/2]

void CFX_Matrix::TransformPoint ( FX_INT32 x,
FX_INT32 y 
) const

变换由X和Y值指定的点。

参数
[in,out]x点的输入X坐标,并接收输出的变换后X坐标。
[in,out]y点的输入Y坐标,并接收输出的变换后Y坐标。
返回
无。

◆ TransformPoints() [1/2]

void CFX_Matrix::TransformPoints ( CFX_PointF points,
FX_INT32  iCount 
) const

变换点数组。

参数
[in,out]points输入的点数组,并接收输出的变换后点数组。
[in]iCount输入的点数量。
返回
无。

◆ TransformPoints() [2/2]

void CFX_Matrix::TransformPoints ( CFX_Point points,
FX_INT32  iCount 
) const

变换点数组。

参数
[in,out]points输入的点数组,并接收输出的变换后点数组。
[in]iCount输入的点数量。
返回
无。

◆ TransformRect() [1/5]

void CFX_Matrix::TransformRect ( CFX_RectF rect) const

变换一个矩形并返回边界矩形。 结果矩形总是标准化的:left <= right,且 top <= bottom。

参数
[in,out]rect输入的矩形,并接收输出的变换后矩形。
返回
无。

◆ TransformRect() [2/5]

void CFX_Matrix::TransformRect ( CFX_Rect rect) const

变换一个矩形并返回边界矩形。 结果矩形总是标准化的:left <= right,且 top <= bottom。

参数
[in,out]rect输入的矩形,并接收输出的变换后矩形。
返回
无。

◆ TransformRect() [3/5]

void CFX_Matrix::TransformRect ( FX_FLOAT left,
FX_FLOAT right,
FX_FLOAT top,
FX_FLOAT bottom 
) const

变换一个矩形并返回边界矩形。 结果矩形总是标准化的:left <= right,且 bottom <= top。

参数
[in,out]left左下角的输入X坐标,并接收输出的变换并标准化后的X坐标。
[in,out]right右上角的输入X坐标,并接收输出的变换并标准化后的X坐标。
[in,out]top右上角的输入Y坐标,并接收输出的变换并标准化后的Y坐标。
[in,out]bottom左下角的输入Y坐标,并接收输出的变换并标准化后的Y坐标。
返回
无。

◆ TransformRect() [4/5]

void CFX_Matrix::TransformRect ( CFX_FloatRect rect) const
inline

变换一个矩形并返回边界矩形。 结果矩形总是标准化的:left <= right,且 bottom <= top。

参数
[in,out]rect输入的矩形,并接收输出的变换并标准化后的矩形。
返回
无。

◆ TransformRect() [5/5]

void CFX_Matrix::TransformRect ( FX_RECT rect) const

变换一个矩形并返回边界矩形。 结果矩形总是标准化的:left <= right,且 bottom <= top。

参数
[in,out]rect输入的矩形,并接收输出的变换并标准化后的矩形。
返回
无。

◆ TransformRoundRect() [1/2]

void CFX_Matrix::TransformRoundRect ( CFX_RoundRectF rr) const

变换一个圆角矩形。

参数
[in,out]rr输入的圆角矩形,并接收输出的变换后圆角矩形。
返回
无。

◆ TransformRoundRect() [2/2]

void CFX_Matrix::TransformRoundRect ( CFX_RoundRect rr) const

变换一个圆角矩形。

参数
[in,out]rr输入的圆角矩形,并接收输出的变换后圆角矩形。
返回
无。

◆ TransformVector() [1/2]

void CFX_Matrix::TransformVector ( CFX_VectorF v) const

变换一个向量。

参数
[in,out]v输入的向量,并接收输出的变换后向量。
返回
无。

◆ TransformVector() [2/2]

void CFX_Matrix::TransformVector ( CFX_Vector v) const

变换一个向量。

参数
[in,out]v输入的向量,并接收输出的变换后向量。
返回
无。

◆ TransformXDistance() [1/2]

FX_FLOAT CFX_Matrix::TransformXDistance ( FX_FLOAT  dx) const

变换X距离。

参数
[in]dx输入的X距离。
返回
变换后的距离。

◆ TransformXDistance() [2/2]

FX_INT32 CFX_Matrix::TransformXDistance ( FX_INT32  dx) const

变换X距离。

参数
[in]dx输入的X距离。
返回
变换后的距离。

◆ TransformYDistance() [1/2]

FX_FLOAT CFX_Matrix::TransformYDistance ( FX_FLOAT  dy) const

变换Y距离。

参数
[in]dy输入的Y距离。
返回
变换后的距离。

◆ TransformYDistance() [2/2]

FX_INT32 CFX_Matrix::TransformYDistance ( FX_INT32  dy) const

变换Y距离。

参数
[in]dy输入的Y距离。
返回
变换后的距离。

◆ Translate()

void CFX_Matrix::Translate ( FX_FLOAT  x,
FX_FLOAT  y,
FX_BOOL  bPrepended = false 
)

平移矩阵。

参数
[in]xX方向的偏移值。
[in]yY方向的偏移值。
[in]bPrepended如果为 true,平移矩阵在左侧相乘,否则在右侧相乘。
返回
无。

◆ TranslateI()

void CFX_Matrix::TranslateI ( FX_INT32  x,
FX_INT32  y,
FX_BOOL  bPrepended = false 
)
inline

平移矩阵。使用整数值。

参数
[in]xX方向的偏移整数值。
[in]yY方向的偏移整数值。
[in]bPrepended如果为 true,平移矩阵在左侧相乘,否则在右侧相乘。
返回
无。