o
    &zh#  ã                   @   s”   d Z dZddlmZmZmZmZ dd„ Zd dd„Zd!d	d
„Z	d"dd„Z
dd„ Zdd„ Zd dd„Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )#z'functions for 2D affine transformations)ÚnullTransformÚ	translateÚscaleÚrotateÚskewXÚskewYÚmmultÚinverseÚzTransformPointÚtransformPointÚtransformPointsÚzTransformPointsé    )ÚcosÚsinÚtanÚradiansc                   C   s   dS )N)é   r   r   r   r   r   © r   r   r   úW/var/www/html/kangema/venv/lib/python3.10/site-packages/reportlab/graphics/transform.pyr      s   r   c                 C   s   dddd| |fS ©Nr   r   r   )ÚdxÚdyr   r   r   r      ó   r   r   c                 C   s   | dd|ddfS )Nr   r   )ÚsxÚsyr   r   r   r      r   r   c                 C   s*   t | ƒ}t|ƒ}t|ƒ}||| |||fS ©N)r   r   r   )ÚangleÚcxÚcyÚaÚsinaÚcosar   r   r   r      s   r   c                 C   s   ddt t| ƒƒdddfS r   ©r   r   ©r   r   r   r   r   "   ó   r   c                 C   s   dt t| ƒƒddddfS r   r"   r#   r   r   r   r   %   r$   r   c                 C   s   |rt t| ƒt|ƒƒS t| ƒS r   )r   r   r   )ÚaxÚayr   r   r   Úskew(   s   r'   c              	   C   sÈ   | d |d  | d |d   | d |d  | d |d   | d |d  | d |d   | d |d  | d |d   | d |d  | d |d   | d  | d |d  | d |d   | d  fS )zA postmultiplied by Br   é   r   é   é   é   r   )ÚAÚBr   r   r   r   .   s   &&ûr   c                 C   s    t | d | d  | d | d   ƒ}| d | | d  | | d  | | d | g}t||d  | d  |d | d   |d  | d  |d | d   g ƒS )zBFor A affine 2D represented as 6vec return 6vec version of A**(-1)r   r)   r(   r   r*   r+   )ÚfloatÚtuple)r,   ÚdetÚRr   r   r   r   <   s   $0Lr   c                 C   s@   | d |d  | d |d   | d |d  | d |d   fS )zBApply the homogenous part of atransformation a to vector v --> A*vr   r(   r   r)   r   ©r,   Úvr   r   r   r	   C   s   @r	   c                 C   sP   | d |d  | d |d   | d  | d |d  | d |d   | d  fS )z*Apply transformation a to vector v --> A*vr   r(   r   r*   r)   r+   r   r2   r   r   r   r
   G   s   Pr
   c                    s(   ‡ fdd„|D ƒ}t |tƒrt|ƒ}|S )Nc                    s   g | ]}t ˆ |ƒ‘qS r   )r
   )Ú.0r3   ©Úmatrixr   r   Ú
<listcomp>L   s    z#transformPoints.<locals>.<listcomp>)Ú
isinstancer/   )r6   ÚVÚrr   r5   r   r   K   s   r   c                 C   s   t t| fdd„|ƒƒS )Nc                 S   s
   t || ƒS r   )r	   )Úxr6   r   r   r   Ú<lambda>Q   s   
 z"zTransformPoints.<locals>.<lambda>)ÚlistÚmap)r6   r9   r   r   r   r   P   s   r   N)r   )r   )r   r   )Ú__doc__Ú__all__Úmathr   r   r   r   r   r   r   r   r   r   r'   r   r   r	   r
   r   r   r   r   r   r   Ú<module>   s     



