zoukankan      html  css  js  c++  java
  • matplotlib BlendedGenericTransform(混合变换)和CompositeGenericTransform(复合变换)

    2020-04-10 23:31:13 -- Edit by yangray
    BlendedGenericTransform是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)

  • 相关阅读:
    正则中的顺序环视和逆序环视
    LeetCode 第 27 场双周赛
    LeetCode 每日一题 198. 打家劫舍
    LeetCode 每日一题 974. 和可被 K 整除的子数组
    LeetCode 每日一题 287. 寻找重复数
    LeetCode 每日一题 4. 寻找两个正序数组的中位数
    LeetCode 每日一题 146. LRU缓存机制
    LeetCode 每日一题 105. 从前序与中序遍历序列构造二叉树
    [转]多线程的那点儿事
    LeetCode 每日一题 5. 最长回文子串
  • 原文地址:https://www.cnblogs.com/exploer/p/12674855.html
Copyright © 2011-2022 走看看