
    i#                     |    d Z dZddlmZmZmZmZ d ZddZddZ	ddZ
d	 Zd
 ZddZd Zd Zd Zd Zd Z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                      dS )N)   r   r   r   r   r    r       l/var/www/html/Pagina-Ingenieria-Requisitos/venv/lib/python3.11/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   r   c                     | dd|ddfS )Nr   r   )sxsys     r   r   r      s    1b!Qr   c                 n    t          |           }t          |          }t          |          }||| |||fS N)r   r   r   )anglecxcyasinacosas         r   r   r      s8    Aq66Dq66D$tR,,r   c                 F    ddt          t          |                     dddfS r   r   r   r!   s    r   r   r   "   s#    q#genn%%q!Q//r   c                 F    dt          t          |                     ddddfS r   r(   r)   s    r   r   r   %   s#    s75>>""Aq!Q//r   c                 x    |r*t          t          |           t          |                    S t          |           S r    )r   r   r   )axays     r   skewr.   (   s2    	 U2YYuRyy)))Ryy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                 j   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   r1   r0   r   r2   r3   )floattuple)r4   detRs      r   r	   r	   <   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   r0   r   r1   r   r4   vs     r   r
   r
   C   sG    aD1Iad1Q4i!QqT	!A$qt) 344r   c                     | 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   r0   r   r2   r1   r3   r   r<   s     r   r   r   G   sY    aD1Iad1Q4i!$QqT!A$YqtAaDy%81%=>>r   c                 l      fd|D             }t          |t                    rt          |          }|S )Nc                 0    g | ]}t          |          S r   )r   ).0r=   matrixs     r   
<listcomp>z#transformPoints.<locals>.<listcomp>L   s#    ---aq	!	!---r   )
isinstancer8   )rB   Vrs   `  r   r   r   K   s;    ----1---A!E(aAHr   c                 B    t          t          | fd|                    S )Nc                 "    t          ||           S r    )r
   )xrB   s     r   <lambda>z"zTransformPoints.<locals>.<lambda>Q   s    OF1,E,E r   )listmap)rB   rE   s     r   r   r   P   s#    FEEEqIIJJJr   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   <module>rP      s!   - - ( ' ' ' ' ' ' ' ' ' ' '                - - - -0 0 00 0 0   * * *@ @ @5 5 5? ? ?  
K K K K Kr   