matplotlib中其他Transform的子类

2020-04-10 23:31:13 -- Edit by yangrayBlendedGenericTransform是Transform的子类,支持在x / y方向上使用不同的变换。(博主翻译为:混合变换)
CompositeGenericTransform是Transform的子类,支持一次作两个变换(连续的)。(博主自译:复合变换)
BlendedGenericTransform(Transform):方法:
  • __init__(self, x_transform, y_transform, **kwargs):

    参数[x_transform], [y_transform]: Transform对象,x / y方向的变换。

    初始化本变换,x方向用x_transform, y方向用y_transform。

  • contains_branch_seperately(self, transform):

    参数[transform]: Transform实例

     返回transform是否是本混合变换中x_transform / y_transform的子类。返回值形如(True, False)

  •  depth(self):  @property修饰器

    返回[x_transform], [y_transform]的最大深度(具体是啥不知道)

  • contains_branch(self, other):

    返回False。(两个不同类的变换不可能包含同一个子孙类)

  •  _get_is_affine(self), _get_has_inverse(self):

    返回 x 和 y 方向的变换是否都是仿射变换 / 是否都拥有反转方法。(x, y都有为True,其他情况都为False)

  • frozen(self):

    返回静态的元组形式的 x 和 y 方向的变换矩阵。(若x方向变换和y方向变换都是Affine2DBase的子类,则使用BlendedAffine2D返回;其他清况使用                BlendedGenericTransform)

  •  transform_non_affine(self, points):

    参数[points]: 点集

    返回仅对points作 x 和 y 方向变换的 非仿射变换部分 的结果。

  • inverted(self):

    返回x_transform和y_transform使用各自的反转方法反转之后 再初始化的 新BlendedGenericTransform(混合变换)对象。

  • get_affine(self):
    返回x_transform和y_transform中的仿射矩阵。(相同则返回一个结果)

CompositeGenericTransform(Transform): 方法:
  • __init__(self, a, b, **kwargs):

    参数 [a], [b]:Transform对象

    初始化复合变换,并将a, b存为类属性。

  •  frozen(self):

    返回静态的元组形式的 a 和 b 的变换矩阵。(若变换a和b都是Affine2D的子类,则用CompositeAffine2D返回;其他情况用CompositeGenericTransform

  • _invalidate_internal(self, value, invalidating_node):

    参数 [value]: 无效化的目标,可选 INVALID_AFFINE,INVALID_NON_AFFINE 或INVALID(INVALID_NON_AFFINE | INVALID_AFFINE),分别为仿射部分,非仿射部分,全部       [invalidating_node]:需要无效化的结点(对象)

    某些特殊情况下当仅对仿射部分的无效化需要扩展到非仿射部分时使用。特殊情况为变换b为非仿射并且 变换a也是非仿射变换 或 变换a已经开启无效化。

  • _iter_break_from_left_to_right(self):

  ·  (不懂)

  • depth(self):
     返回变化a和b的深度之和(不知道啥意思)
  • _get_is_affine(self), _get_is_separable(self):

    返回是否 变换a和b都为仿射变化 /  都为可分离的(混合变换)。(ab都满足才为True)

  • transform_affine(self, points), transform_non_affine(self, points):

    参数[points]: 点集

    返回对points仅作本复合变换中的仿射部分 / 非仿射部分的结果

  • transform_path_non_affine(self, path):

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

    返回对path执行本复合变换中非仿射部分的结果。

  • get_affine(self):

    返回本复合变换中仿射部分的矩阵。(若变换b为非仿射,则返回b的仿射矩阵(False);否则变化b和变换a的仿射矩阵的点积)。

  • inverted(self):

    返回变换a和b使用各自的反转方法反转之后 再初始化的 新CompositeGenericTransform(复合变换)对象。

  •  _get_has_inverse(self):
    返回变换a和b是否都有反转方法。(都有为True)

原文地址:https://www.cnblogs.com/exploer/p/12674855.html

时间: 2024-10-28 03:15:05

matplotlib中其他Transform的子类的相关文章

C++ 中超类化和子类化常用API

在windows平台上,使用C++实现子类化和超类化常用的API并不多,由于这些API函数的详解和使用方法,网上一大把.本文仅作为笔记,简单的记录一下. 子类化:SetWindowLong,GetWindowLong,CallWindowProc,FindWindowEx 超类化:GetClassInfoEx,RegisterClassEx,UnRegisterClass 以上函数在代码中的使用见<C++ 中超类化和子类化> VC中基于SDK编程的窗口子类化 VC中基于SDK编程的窗口子类化的

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

最近在研究动态障碍物避障算法,在Python语言进行算法仿真时需要实时显示障碍物和运动物的当前位置和轨迹,利用Anaconda的Python打包集合,在Spyder中使用Python3.5语言和matplotlib实现路径的动态显示和交互式绘图(和Matlab功能类似). Anaconda是一个用于科学计算的Python发行版,支持 Linux, Mac, Windows系统,提供了包管理与环境管理的功能,可以很方便地解决多版本python并存.切换以及各种第三方包安装问题.Anaconda利用

面向对象(子父类中构造函数的特点-子类实例化过程)

/* 3,子父类中的构造函数. 在对子类对象进行初始化时,父类的构造函数也会运行, 那是因为子类的构造函数默认第一行有一条隐式的语句 super(); super():会访问父类中空参数的构造函数.而且子类中所有的构造函数默认第一行都是super(); 为什么子类一定要访问父类中的构造函数. 因为父类中的数据子类可以直接获取.所以子类对象在建立时,需要先查看父类是如何对这些数据进行初始化的.//指在在父类构造函数初始化 所以子类在对象初始化时,要先访问一下父类中的构造函数. 如果要访问父类中指定

Unity 3D中的Transform.Rotate 与Transform.RotateAround 的区别

Transform.Rotate 旋转 应用一个欧拉角的旋转角度,eulerAngles.z度围绕z轴,eulerAngles.x度围绕x轴,eulerAngles.y度围绕y轴(这样的顺序). 如果相对于留空或者设置为Space.Self 旋转角度被应用围绕变换的自身轴.(当在场景视图选择物体时,x.y和z轴显示)如果相对于 Space.World 旋转角度被应用围绕世界的x.y.z轴. 1 gameObject.transform.Rotate(new Vector3(0,1,0),Inpu

Java中不要在父类的构造方法中调用会被子类重写的方法

在Java中,不要在父类的构造函数中调用会被子类重写的方法,否则运行时会遇到意想不到的错误.看一个例子就会明白: import java.util.*; class Animal { public Animal() { eat(); } protected void eat() { System.out.println("Eat something"); } } public class Bird extends Animal { public Bird() { } @Override

简单粗暴的解释css3中的transform属性

事先说明,本文范畴尚限制在2D的transform中. 对于css3的transform属性,真是爱不释手,有了这个特性,各种特效轻松搞定.引用一句歌词"旋转,跳跃,我不停歇".transform就是这么时尚,就是这么任性.当然他任性的地方不只是在功能方面,还有在使用方面.我们看一下W3C官网中关于transform 2D的使用介绍. 看着有点多,首先先来分类一下:一个matrix,三个translate,三个scale,三个skew,一个rotate.而三个translate中又分为

Matplotlib中的颜色

使用matplotlib中会遇到选择颜色的问题,很多人会觉得自带的matlab风格的颜色不好看.好在Matplotlib已经预见到了这个问题,除了支持最基本的matlab传统颜色之外,还支持很多种颜色的表达方式: RGB 或者 RGBA 浮点值元组,[0, 1]之间,例如(0.1, 0.2, 0.5)或者(0.1, 0.2, 0.5, 0.3). RGB 或者 RGBA 十六进制字符串,例如#0F0F0F或者#0F0F0F0F. [0, 1]之间的浮点值的字符串表示,用于表示灰度,例如0.5.

Matplotlib中中文不显示问题

我们在使用jupter进行数据分析的时候,会接触到Matplotlib这个库,它是用来进行可视化数据分析的,在一个图中,我们常常会加入一些中文来进行说明.当我们加入中文的时候会出现下图所示的样子: 可以看到,中文变成了这种乱码的形式.网上有很多的例子,有很多是错误的,这里我把我测试成功的方法说明一下. 我使用的电脑系统是Window10,后面的方法也是针对它的,其他的系统应该也差距不大,可以借鉴一下. 1.找一个喜欢的字体 字体的话,我们可以去网上下载,也可以用系统自带的.我们可以进入到目录:C

matplotlib中subplots的用法

1.matplotlib中如果只画一张图的话,可以直接用pyplot,一般的做法是: import matplotlib.pyplot as plt plt.figure(figsize=(20,8),dpi=90) # 设置画布大小及像素 plt.xticks()  # 设置x坐标刻度 plt.yticks() # 设置y坐标刻度 plt.xlabel() # 设置x坐标名 plt.ylabel() # 设置y坐标名 plt.title() # 设置主题 plt.plot() # 画图 plt