
    Q?h#                         S r SrSSKJrJrJrJr  S rSS jrSS jr	SS jr
S rS	 rSS
 jrS rS rS rS rS rS rg)z'functions for 2D affine transformations)nullTransform	translatescalerotateskewXskewYmmultinversezTransformPointtransformPointtransformPointszTransformPoints    )cossintanradiansc                      g)N)   r   r   r   r   r    r       N/var/www/html/env/lib/python3.13/site-packages/reportlab/graphics/transform.pyr   r      s    r   c                     SSSSX4$ Nr   r   r   )dxdys     r   r   r      s    q!Qr   c                     U SSUSS4$ )Nr   r   )sxsys     r   r   r      s    1b!Qr   c                 R    [        U 5      n[        U5      n[        U5      nXTU* XQU4$ N)r   r   r   )anglecxcyasinacosas         r   r   r      s.    Aq6Dq6Dt,,r   c                 6    SS[        [        U 5      5      SSS4$ r   r   r   r!   s    r   r   r   "   s    q#gen%q!Q//r   c                 6    S[        [        U 5      5      SSSS4$ r   r(   r)   s    r   r   r   %   s    s75>"Aq!Q//r   c                 b    U(       a  [        [        U 5      [        U5      5      $ [        U 5      $ r    )r   r   r   )axays     r   skewr.   (   s$    	U2YuRy))Ryr   c           	      &   U S   US   -  U S   US   -  -   U S   US   -  U S   US   -  -   U S   US   -  U S   US   -  -   U S   US   -  U S   US   -  -   U S   US   -  U S   US   -  -   U S   -   U S   US   -  U S   US   -  -   U S   -   4$ )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                     [        U S   U S   -  U S   U S   -  -
  5      nU S   U-  U S   * U-  U S   * U-  U S   U-  /n[        X"S   * U S   -  US   U S   -  -
  US   * U S   -  US   U S   -  -
  /-   5      $ )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qTE!A$JqtAaDy(!A$qtAaD1I)=>>??r   c                 ^    U S   US   -  U S   US   -  -   U S   US   -  U S   US   -  -   4$ )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                 v    U S   US   -  U S   US   -  -   U S   -   U S   US   -  U S   US   -  -   U S   -   4$ )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                     U Vs/ s H  n[        X5      PM     nn[        U[        5      (       a  [        U5      nU$ s  snf r    )r   
isinstancer8   )matrixVr=   rs       r   r   r   K   s:    +,-1a	!1A-!EaAH 	.s   >c                 4    [        [        U 4S jU5      5      $ )Nc                     [        X5      $ r    )r
   )xrA   s     r   <lambda>"zTransformPoints.<locals>.<lambda>Q   s	    OF,Er   )listmap)rA   rB   s     r   r   r   P   s    FEqI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>rN      sZ    - ( '  -00*@5?
Kr   