§
    £”jJ
  ã                   ó‚   — 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„ ZdS )z'functions for 2D affine transformations)ÚnullTransformÚ	translateÚscaleÚrotateÚskewXÚskewYÚmmultÚcombineTransformsÚinverseÚzTransformPointÚtransformPointÚtransformPointsÚzTransformPointsé    )ÚcosÚsinÚtanÚradiansc                  ó   — dS )N)é   r   r   r   r   r   © r   ó    úk/var/www/finuniver-perm.ru/html/portfolio/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   € Ø��1�b˜!˜QÐÐr   c                 ón   — t          | ¦  «        }t          |¦  «        }t          |¦  «        }||| |||fS ©N)r   r   r   )ÚangleÚcxÚcyÚaÚsinaÚcosas         r   r   r      s8   € Ý�‰Œ€AÝˆq‰6Œ6€DÝˆq‰6Œ6€DØ�$˜˜˜t R¨Ð,Ð,r   c                 óF   — ddt          t          | ¦  «        ¦  «        dddfS r   ©r   r   ©r"   s    r   r   r   #   s#   € Øˆq•#•g˜e‘n”nÑ%Ô% q¨!¨QÐ/Ð/r   c                 óF   — dt          t          | ¦  «        ¦  «        ddddfS r   r)   r*   s    r   r   r   &   s#   € Ø�s•7˜5‘>”>Ñ"Ô" A q¨!¨QÐ/Ð/r   c                 óx   — |r*t          t          | ¦  «        t          |¦  «        ¦  «        S t          | ¦  «        S r!   )r   r   r   )ÚaxÚays     r   Úskewr/   )   s2   € Ø	ð Ý•U˜2‘Y”Y�u R™yœyÑ)Ô)Ð)å�R‰yŒyÐ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à   € ð ˆaŒD��1”‰I˜˜!œ˜Q˜qœT™	Ñ!ØˆaŒD��1”‰I˜˜!œ˜Q˜qœT™	Ñ!ØˆaŒD��1”‰I˜˜!œ˜Q˜qœT™	Ñ!ØˆaŒD��1”‰I˜˜!œ˜Q˜qœT™	Ñ!ØˆaŒD��1”‰I˜˜!œ˜Q˜qœT™	Ñ! A a¤DÑ(ØˆaŒD��1”‰I˜˜!œ˜Q˜qœT™	Ñ! A a¤DÑ(ð*ð *r   c                  ó  — t          | ¦  «        }|dk    rt          | d         | d         ¦  «        nZ|dk    r9t          t          | dd…         Ž t          | d         | d         ¦  «        ¦  «        n|dk    r| d         nt          ¦   «         S )a	  
    given transform matrices in the order they should be applied generate
    a combined transform.

    combineTransforms(T0,T1,T2) == mmult(T2,mmult(T1,T0))
                                == T2*T1*T0
    so that T0 is applied first, then T1 and finally T2.
    r1   r   r   N)Úlenr   r	   r   )ÚTÚnTs     r   r	   r	   =   s„   € õ 
ˆQ‰Œ€Bà " A¢ �E�!�A”$�q˜”tÑÔÐØGIÈ!ÂtÀt•Õ(¨!¨A¨B¨B¬%Ð0µ%¸¸!¼¸Q¸q¼TÑ2BÔ2BÑCÔCÐCØ˜Qš˜��1”�Ý‘”ð	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   r2   r1   r   r3   r4   )ÚfloatÚtuple)r5   ÚdetÚRs      r   r
   r
   N   s¶   € õ ��!”�Q�q”T‘	˜A˜aœD  1¤™IÑ%Ñ
&Ô
&€CØ	
ˆ1Œˆc‰�A�a”D�5˜‘9˜q œt˜e C™i¨¨1¬¨c©Ð2€AÝ��Q�q”T�E˜!˜Aœ$‘J˜q œt A a¤D™yÑ(¨!¨A¬$¨¨q°¬t©°A°a´D¸¸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   r1   r   r2   r   ©r5   Úvs     r   r   r   U   sG   € àˆaŒD��1”‰I�a˜”d˜1˜Qœ4‘iÑ  !¤ Q q¤T¡	¨!¨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   r1   r   r3   r2   r4   r   rA   s     r   r   r   Y   sY   € àˆaŒD��1”‰I�a˜”d˜1˜Qœ4‘iÑ  !¤Ñ$ Q q¤T¨!¨A¬$¡Y¨q°¬t°A°a´D©yÑ%8¸¸1¼Ñ%=Ð>Ð>r   c                 ól   ‡ — ˆ fd„|D ¦   «         }t          |t          ¦  «        rt          |¦  «        }|S )Nc                 ó0   •— g | ]}t          ‰|¦  «        ‘ŒS r   )r   )Ú.0rB   Úmatrixs     €r   ú
<listcomp>z#transformPoints.<locals>.<listcomp>^   s#   ø€ Ð-Ð-Ð- a�˜˜qÑ	!Ô	!Ð-Ð-Ð-r   )Ú
isinstancer=   )rG   ÚVÚrs   `  r   r   r   ]   s;   ø€ Ø-Ð-Ð-Ð-¨1Ð-Ñ-Ô-€AÝ�!•EÑÔÐ(¥ a¡¤˜AØ€Hr   c                 óB   — t          t          | fd„|¦  «        ¦  «        S )Nc                 ó"   — t          || ¦  «        S r!   )r   )ÚxrG   s     r   ú<lambda>z"zTransformPoints.<locals>.<lambda>c   s   € ­O¸FÀ1Ñ,EÔ,E€ r   )ÚlistÚmap)rG   rJ   s     r   r   r   b   s#   € Ý• FÐEÐEÐEÀqÑ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   r   ú<module>rU      s0  ðØ -Ð -ð€ð (Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'ðð ð ð ð  ð  ð  ð ð  ð  ð  ð-ð -ð -ð -ð0ð 0ð 0ð0ð 0ð 0ðð ð ð ð*ð *ð *ðð ð ð"@ð @ð @ð5ð 5ð 5ð?ð ?ð ?ðð ð ð
Kð Kð Kð Kð Kr   