mirror of
https://github.com/xiaoqidun/ofdgo.git
synced 2026-10-30 01:27:26 +08:00
1 parent
71e67be9c1
commit
1914b5329a
25 files changed
+747
-253
No files matched your search
+9
-4
@@ -27,6 +27,11 @@ type Box struct {
|
||||
X, Y, W, H float64
|
||||
}
|
||||
|
||||
// Point 平面坐标点
|
||||
type Point struct {
|
||||
X, Y float64
|
||||
}
|
||||
|
||||
// ParseBox 解析Box字符串
|
||||
// 入参: s 字符串
|
||||
// 返回: Box 矩形对象, error 错误信息
|
||||
@@ -96,7 +101,7 @@ func (m Matrix) Transform(x, y float64) (float64, float64) {
|
||||
return nx, ny
|
||||
}
|
||||
|
||||
// TransformBox 获取矩形经仿射变换后的轴对齐边界。
|
||||
// TransformBox 获取矩形经仿射变换后的轴对齐边界
|
||||
// 入参: box 原始矩形范围
|
||||
// 返回: Box 变换后的轴对齐边界
|
||||
func (m Matrix) TransformBox(box Box) Box {
|
||||
@@ -109,20 +114,20 @@ func (m Matrix) TransformBox(box Box) Box {
|
||||
return Box{X: left, Y: top, W: right - left, H: bottom - top}
|
||||
}
|
||||
|
||||
// String 返回标准CTM属性值。
|
||||
// String 返回标准CTM属性值
|
||||
// 返回: string 六个空格分隔的矩阵分量
|
||||
func (m Matrix) String() string {
|
||||
return fmt.Sprintf("%s %s %s %s %s %s", ofdNumber(m.a), ofdNumber(m.b), ofdNumber(m.c), ofdNumber(m.d), ofdNumber(m.e), ofdNumber(m.f))
|
||||
}
|
||||
|
||||
// axisAlignedMatrix 判断变换是否保持坐标轴平行,含直角旋转与镜像。
|
||||
// axisAlignedMatrix 判断变换是否保持坐标轴平行,含直角旋转与镜像
|
||||
// 入参: m 仿射变换矩阵
|
||||
// 返回: bool 是否为非退化的轴对齐变换
|
||||
func axisAlignedMatrix(m Matrix) bool {
|
||||
return m.b == 0 && m.c == 0 && m.a != 0 && m.d != 0 || m.a == 0 && m.d == 0 && m.b != 0 && m.c != 0
|
||||
}
|
||||
|
||||
// matrixVector 变换位移,不包含平移分量。
|
||||
// matrixVector 变换位移,不包含平移分量
|
||||
// 入参: m 仿射变换矩阵, x、y 原始位移
|
||||
// 返回: float64 变换后的X位移, float64 变换后的Y位移
|
||||
func matrixVector(m Matrix, x, y float64) (float64, float64) {
|
||||
|
||||
Reference in new issue
Block a user