2020-04-11 11:42:22 --Edit by yangray
以下所有类(除了BboxTransformToMaxOnly )都直接继承于Affine2DBase

IdentityTransform专门做高效的原地变换(变换前后不变)。
BboxTransform 线性地将点集从一个bbox变换到另一bbox。
BboxTransformTo 线性地将点集从单位bbox([0,0], [1,1]) 变换到指定bbox。
BboxTransformToMaxOnly 线性地将点集从单位bbox变换到指定bbox,左上角固定为原点(0, 0)。
BboxTransformFrom 线性地将点集从给定bbox变换到单位bbox
ScaledTranslation 对位移量进行伸缩控制的位移变换。

IdentityTransform(Affine2DBase):
方法:
  • frozen(self):

    返回静态的变换矩阵的拷贝。

  • get_matrix(self):

    返回变换矩阵。

  • transform(self, points):

    返回points(点集)作原地变换的结果。(变换之后和变换之前一样)

  • transform_path(self, path):

    参数[path]: Path对象,曲线。    

    返回对曲线path作原地变换的结果。(变换前后都一样)

  • get_affine(self):

    返回本原地变换的 self。(便于链式调用)

BboxTransform(Affine2DBase):
方法:
  • __init__(self, boxin, boxout, **kwargs):

    参数[boxin], [boxout]: Bbox对象

    创建一个BboxTransform对象,线性地将点集从boxin变换到boxout中

  •  get_matrix(self):

     返回由boxin变换到boxout的变换矩阵,包括尺度的变换,位置的变换。

    横向尺度为 boxout的宽 / boxin的宽,纵向尺度为 boxout的高 / boxin的高。

    横向位移为boxout的左边 - bbox的左边 * 横向尺度,纵向类似。

BboxTransformTo(Affine2DBase):
方法:
  • __init__(self, boxout, **kwargs):

    参数[boxout]: Bbox对象

    创建一个BboxTransformTo对象,线性地将点集从单位bbox([0,0], [1,1])变换到boxout。

  • get_matrix(self):

    返回从单位bbox变换到boxout的变换矩阵。生成方式参考BboxTransform类的同一方法。

BboxTransformToMaxOnly(BboxTransformTo):
方法
  • get_matrix(self):

    返回从单位bbox变换到boxout的变换矩阵。生成方式参考BboxTransform类的同一方法。(选择最大的变换比例)


BboxTransformFrom(Affine2DBase):
方法
  • __init__(self, boxin, **kwargs):

    参数[boxin]: Bbox实例

     创建新的BboxTransformFrom,将点集从boxin变换到单位bbox([0,0], [1,1])。

  • get_matrix(self):

    返回从boxin变换到单位box的变换矩阵。生成方式参考BboxTransform类的同一方法。

ScaledTranslation(Affine2DBase):
方法
  •  __init__(self, xt, yt, scale_trans, **kwargs):

    参数[xt], [yt]: x / y方向的位移量

     [scale_trans]: 位移的伸缩比例

     创建一个ScaledTranslation(可控位移变换)对象,x方向位移xt*scale_trans, y方向位移yt*scale_trans。

  • get_matrix(self):

    返回本ScaledTranslation(可控位移变换)的变换矩阵。

    

最新文章

  1. Thinking in Java——笔记(15)
  2. Spring中@Controller和@RestController之间的区别
  3. 微信,QQ这类IM app怎么做——谈谈Websocket
  4. GetComponents和FindObjectsOfTypeAll区别
  5. python-文件操作(1)
  6. [HDU 1317]XYZZY[SPFA变形][最长路]
  7. stm32之Systick(系统时钟)
  8. 远程连接到vultr vps的mysql服务器
  9. Android网络开发之OkHttp--基本用法实例化各个对象
  10. php结合redis实现秒杀功能
  11. 以C语言为例的程序性能优化 --《深入理解计算机系统》第五章读书笔记
  12. Atomic in Redis
  13. Confluence 6 用户目录图例 - Confluence 内部目录
  14. Linux DNS 查询剖析(第四部分) | Linux 中国
  15. spring 原理1:java 模拟springIOC容器
  16. using强制对象清理资源 【转】
  17. python基础之socket与socketserver
  18. Hadoop HBase概念学习系列之HMaster服务器(四)
  19. 【Java】JVM(六)虚拟机字节码执行引擎
  20. iconfont补遗

热门文章

  1. *fetch(_, { call, put }) { --- generator
  2. 如何查看子线程中的GC Alloc
  3. 分布式——吞吐量巨强、Hbase的承载者 LSMT
  4. 基于Jquery WeUI的微信开发H5页面控件的经验总结(2)
  5. Swift 4.0 字符串(String)学习
  6. 用docker搭建selenium grid分布式环境实践之路
  7. c# Dictionary<string, object> 转JSON字符串
  8. 蓝桥杯——一步之遥,扩展gcd的应用
  9. nginx openssl升级支持http2
  10. Hive视图如何创建、特点及应用场景