
    Kwg                     l    d Z dZddlmZmZmZmZ d Zd Zd Z	d Z
d Zd	 Zd
 Zd Zd Zd Zd Zd Zy)z'functions for 2D affine transformations)nullTransform	translatescalerotateskewXskewYmmultinversezTransformPointtransformPointtransformPointszTransformPoints    )cossintanradiansc                       y)N)   r   r   r   r   r    r       S/var/www/horilla/myenv/lib/python3.12/site-packages/reportlab/graphics/transform.pyr   r      s    r   c                     dddd| |fS Nr   r   r   )dxdys     r   r   r      s    q!QBr   c                     | dd|ddfS Nr   r   )sxsys     r   r   r      s    1b!Qr   c                 V    t        |       }t        |      }t        |      }||| |ddfS r   )r   r   r   )angleasinacosas       r   r   r      s2    Aq6Dq6D$tQ**r   c                 6    ddt        t        |             dddfS r   r   r   r!   s    r   r   r   "   s    q#gen%q!Q//r   c                 6    dt        t        |             ddddfS r   r&   r'   s    r   r   r   %   s    s75>"Aq!Q//r   c           	      &   | d   |d   z  | d   |d   z  z   | d   |d   z  | d   |d   z  z   | d   |d   z  | d   |d   z  z   | d   |d   z  | d   |d   z  z   | d   |d   z  | d   |d   z  z   | d   z   | d   |d   z  | d   |d   z  z   | d   z   fS )zA postmultiplied by Br      r            r   )ABs     r   r   r   (   s     aD1I!QqT	!aD1I!QqT	!aD1I!QqT	!aD1I!QqT	!aD1I!QqT	!AaD(aD1I!QqT	!AaD(* *r   c                     t        | d   | d   z  | d   | d   z  z
        }| d   |z  | d    |z  | d    |z  | d   |z  g}t        ||d    | d   z  |d   | d   z  z
  |d    | d   z  |d   | d   z  z
  gz         S )zBFor A affine 2D represented as 6vec return 6vec version of A**(-1)r   r+   r*   r   r,   r-   )floattuple)r.   detRs      r   r	   r	   6   s     !QqT	AaD1I%
&C	
1cAaD59qteCi1c2AQqTE!A$JqtAaDy(!A$qtAaD1I)=>>??r   c                 ^    | d   |d   z  | d   |d   z  z   | d   |d   z  | d   |d   z  z   fS )zBApply the homogenous part of atransformation a to vector v --> A*vr   r*   r   r+   r   r.   vs     r   r
   r
   =   sG    aD1Iad1Q4i!QqT	!A$qt) 344r   c                 v    | d   |d   z  | d   |d   z  z   | d   z   | d   |d   z  | d   |d   z  z   | d   z   fS )z*Apply transformation a to vector v --> A*vr   r*   r   r,   r+   r-   r   r6   s     r   r   r   A   sY    aD1Iad1Q4i!$QqT!A$YqtAaDy%81%=>>r   c                 x    |D cg c]  }t        | |       }}t        |t              rt        |      }|S c c}w N)r   
isinstancer2   )matrixVr7   rs       r   r   r   E   s8    +,-aq	!-A-!EaAH 	.s   7c                 2    t        t        | fd|            S )Nc                     t        ||       S r:   )r
   )xr<   s     r   <lambda>z"zTransformPoints.<locals>.<lambda>K   s    OF1,E r   )listmap)r<   r=   s     r   r   r   J   s    FEqIJJr   N)__doc____all__mathr   r   r   r   r   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   <module>rH      sU    - ( '  +00*@5?
Kr   