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(可控位移变换)的变换矩阵。

    

matplotlib 中其他基于Affine2DBase的类的更多相关文章

  1. 基于Python实现matplotlib中动态更新图片(交互式绘图)

    最近在研究动态障碍物避障算法,在Python语言进行算法仿真时需要实时显示障碍物和运动物的当前位置和轨迹,利用Anaconda的Python打包集合,在Spyder中使用Python3.5语言和mat ...

  2. asp.net中使用基于角色role的Forms验证

    http://www.cnblogs.com/yao/archive/2006/06/24/434783.html asp.net中使用基于角色role的Forms验证,大致经过几下四步:1.配置系统 ...

  3. C#中的结构体与类的区别

    经常听到有朋友在讨论C#中的结构与类有什么区别.正好这几日闲来无事,自己总结一下,希望大家指点. 1. 首先是语法定义上的区别啦,这个就不用多说了.定义类使用关键字class 定义结构使用关键字str ...

  4. 在ASP.NET MVC中实现基于URL的权限控制

    本示例演示了在ASP.NET MVC中进行基于URL的权限控制,由于是基于URL进行控制的,所以只能精确到页.这种权限控制的优点是可以在已有的项目上改动极少的代码来增加权限控制功能,和项目本身的耦合度 ...

  5. 在Apworks数据服务中使用基于Entity Framework Core的仓储(Repository)实现

    <在ASP.NET Core中使用Apworks快速开发数据服务>一文中,我介绍了如何使用Apworks框架的数据服务来快速构建用于查询和管理数据模型的RESTful API,通过该文的介 ...

  6. 二、spring Boot构建的Web应用中,基于MySQL数据库的几种数据库连接方式进行介绍

    包括JDBC.JPA.MyBatis.多数据源和事务. 一.JDBC 连接数据库 1.属性配置文件(application.properties) spring.datasource.url=jdbc ...

  7. JAVA中的集合容器操作类

    目录 JAVA中的集合容器操作类 List集合 ArrayList的操作方法说明 LinkedList Stack Set Map Queue 总结 JAVA中的集合容器操作类 Java容器类库总共分 ...

  8. Java中各种集合(字符串类)的线程安全性!!!

    Java中各种集合(字符串类)的线程安全性!!! 一.概念: 线程安全:就是当多线程访问时,采用了加锁的机制:即当一个线程访问该类的某个数据时,会对这个数据进行保护,其他线程不能对其访问,直到该线程读 ...

  9. C#中的结构体与类的区别 (转载)

    经常听到有朋友在讨论C#中的结构与类有什么区别.正好这几日闲来无事,自己总结一下,希望大家指点. 1. 首先是语法定义上的区别啦,这个就不用多说了.定义类使用关键字class 定义结构使用关键字str ...

随机推荐

  1. 03-Vue数据请求

    1. vue-resource vue-resource jsonp请求 <body> <div id="app"> <!-- v-model 监听表 ...

  2. 【Weiss】【第03章】练习3.18:检查平衡符号

    [练习3.18]用下列语言编写检测平衡符号的程序 a.Pascal ( begin/end, ( ), [ ], { } ). b.C语言( /* */, ( ), [ ], { }). c.解释如何 ...

  3. kerberos系列之zookeeper的认证配置

    本篇博客介绍配置zookeeper的kerberos配置 一.zookeeper安装 1.解压安装包和重命名和创建数据目录 tar -zxvf /data/apache-zookeeper-3.5.5 ...

  4. VsCode代码段添加方法

    VsCode代码段添加方法 我们在编写代码的过程中,常常会遇到一些固定的结构或常用的处理方法. 编写耗费时间尽力,这时我们想到了添加代码段功能,帮助我们快速的完成编写. 下面以VsCode为例子: 我 ...

  5. .NET Core技术研究-HttpContext访问的正确姿势

    将ASP.NET升级到ASP.NET Core之后,相信大家都会遇到HttpContext.Current无法使用的问题.这也是我们迁移ASP.NET Core必须解决的问题. 本文我们详细讨论一下, ...

  6. HTTP2.0学习 与 Nginx和Tomcat配置HTTP2.0

    目录 一.HTTP2.0 1.1 简介 1.2 新的特性 1.3 h2c 的支持度 二.Nginx 对 http2.0 的支持 2.1 Nginx 作为服务端使用http2.0 2.2 Nginx 作 ...

  7. 测试工程师需要了解的shell变量知识

    欢迎访问个人博客 什么是变量 本地变量:手动定义的,在当前系统的某个环境下才能生效,作用范围小 普通变量: 单引号:原字符输出,变量名='变量值' ➜ shell name='tom' ➜ shell ...

  8. springMVC容器简介和执行流程

    先来看一下,初始化的大体流程:  然后,我们再来看一下,我们的控制器DispatcherServlet的类图及继承关系.  系统启动的时候根据配置文件创建spring的容器, 首先是发送http请求到 ...

  9. 安装自动化测试工具webdriver与selenium模块

    webdriver是一个驱动,需要与selenium配合使用,selenium是自动化测试和爬虫的专业模块,对于不同的浏览器需要不同的webdriver,这里我用的是ubuntu19.10的系统,以p ...

  10. intern()方法的使用

    intern() intern方法的作用是:如果字符串常量池中已经包含一个字符串等于此String对象的字符串,则返回常量池中的这个String对应的对象, 否则将其添加到常量池并返回常量池中的引用. ...