matplotlib 中其他基于Affine2DBase的类
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的类的更多相关文章
- 基于Python实现matplotlib中动态更新图片(交互式绘图)
最近在研究动态障碍物避障算法,在Python语言进行算法仿真时需要实时显示障碍物和运动物的当前位置和轨迹,利用Anaconda的Python打包集合,在Spyder中使用Python3.5语言和mat ...
- asp.net中使用基于角色role的Forms验证
http://www.cnblogs.com/yao/archive/2006/06/24/434783.html asp.net中使用基于角色role的Forms验证,大致经过几下四步:1.配置系统 ...
- C#中的结构体与类的区别
经常听到有朋友在讨论C#中的结构与类有什么区别.正好这几日闲来无事,自己总结一下,希望大家指点. 1. 首先是语法定义上的区别啦,这个就不用多说了.定义类使用关键字class 定义结构使用关键字str ...
- 在ASP.NET MVC中实现基于URL的权限控制
本示例演示了在ASP.NET MVC中进行基于URL的权限控制,由于是基于URL进行控制的,所以只能精确到页.这种权限控制的优点是可以在已有的项目上改动极少的代码来增加权限控制功能,和项目本身的耦合度 ...
- 在Apworks数据服务中使用基于Entity Framework Core的仓储(Repository)实现
<在ASP.NET Core中使用Apworks快速开发数据服务>一文中,我介绍了如何使用Apworks框架的数据服务来快速构建用于查询和管理数据模型的RESTful API,通过该文的介 ...
- 二、spring Boot构建的Web应用中,基于MySQL数据库的几种数据库连接方式进行介绍
包括JDBC.JPA.MyBatis.多数据源和事务. 一.JDBC 连接数据库 1.属性配置文件(application.properties) spring.datasource.url=jdbc ...
- JAVA中的集合容器操作类
目录 JAVA中的集合容器操作类 List集合 ArrayList的操作方法说明 LinkedList Stack Set Map Queue 总结 JAVA中的集合容器操作类 Java容器类库总共分 ...
- Java中各种集合(字符串类)的线程安全性!!!
Java中各种集合(字符串类)的线程安全性!!! 一.概念: 线程安全:就是当多线程访问时,采用了加锁的机制:即当一个线程访问该类的某个数据时,会对这个数据进行保护,其他线程不能对其访问,直到该线程读 ...
- C#中的结构体与类的区别 (转载)
经常听到有朋友在讨论C#中的结构与类有什么区别.正好这几日闲来无事,自己总结一下,希望大家指点. 1. 首先是语法定义上的区别啦,这个就不用多说了.定义类使用关键字class 定义结构使用关键字str ...
随机推荐
- android弱网络优化
1 网络请求,使用更好的网络请求方式 flutter有3种请求方式,flutter自带的io下httpclient请求,使用dart原生的http请求,dio请求. flutter还可以通过调用and ...
- 最长公共前缀(py)
编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow" ...
- Android AlertDialog 各种弹框代码
1.消息框 btn01.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ...
- Koadic的安装和使用
概述 Koadic是DEFCON分型出来的一个后渗透工具,主要通过vbscript.jscript进行大部分操作 环境准备 我准备的是两台虚拟机一台kali就是攻击机器一台windows7 64位就是 ...
- Python编写“去除字符串中所有空格”
#利用迭代操作,实现一个trim()函数,去除字符串中所有空格 def trim(str): newstr = '' for ch in str: #遍历每一个字符串 if ch!=' ': news ...
- 8千字干货教程|java反射精讲
java反射机制精讲 目录 1. 反射机制的概念 2. 反射的基础Class类 3. 反射的用法 4. 反射的应用示例 作者简介:全栈学习笔记,一个正在努力的人 微信公众号:公众号日更,精彩美文每天推 ...
- 决战Leetcode: easy part(51-96)
本博客是个人原创的针对leetcode上的problem的解法,所有solution都基本通过了leetcode的官方Judging,个别未通过的例外情况会在相应部分作特别说明. 欢迎互相交流! em ...
- iOS UmbrellaFramework
一.umbrella framework 将几个已经封装好的 framework 封装成一个,封装的这种 framework 就是 umbrella framework. Apple 的官方文档中明确 ...
- 俩个对象的hashCode()相同,则equals()也一定为true,对吗?
不对,俩个对象的hashCode()相同,equals()不一定为true. 代码示例: 1 String str1 = "通话"; 2 String str2 = "重 ...
- k8s删除namespace一直处于terminating状态
k8s删除namespace一直处于terminating状态 当遇到删除ns是一直处于terminating情况可以用调k8s api进行删除. 1.创建api proxy. [root@node1 ...