o
    Zh0h  ã                   @   s\   d Z ddlmZmZmZ ddlmZmZ dd„ Zdd„ Z	d	d
„ Z
dd„ Zdd„ Zdd„ ZdS )zDraw simple shapes.é    )Úatan2ÚpiÚsqrté   )Ú	normalizeÚpointc              	   C   s  |   | d¡|¡}|sdS |ttƒ }|  | d¡| d¡|¡\}}| j || |¡ | j || || || || ||| ¡ | j || || || || || |¡ | j || || || || ||| ¡ | j || || || || || |¡ | j ¡  dS )zDraw circle tag.ÚrNÚcxÚcy)	ÚlengthÚgetr   r   r   ÚstreamÚmove_toÚcurve_toÚclose)ÚsvgÚnodeÚ	font_sizer   Úratior	   r
   © r   úK/var/www/html/rh/venv/lib/python3.10/site-packages/weasyprint/svg/shapes.pyÚcircle   s   ****r   c           	   	   C   s(  |   | d¡| d¡|¡\}}|r|sdS |ttƒ }|ttƒ }|   | d¡| d¡|¡\}}| j || |¡ | j || || || || ||| ¡ | j || || || || || |¡ | j || || || || ||| ¡ | j || || || || || |¡ | j ¡  dS )zDraw ellipse tag.ÚrxÚryNr	   r
   )r   r   r   r   r   r   r   r   )	r   r   r   r   r   Úratio_xÚratio_yr	   r
   r   r   r   Úellipse   s(    ÿ ÿ ÿ ÿr   c              	   C   sD  |   | d¡| d¡|¡\}}|dks|dkrdS |   | d¡| d¡|¡\}}| d¡}| d¡}|r;|du r;|}n|rC|du rC|}|   |||¡\}}|dksT|dkr_| j ||||¡ dS ||d	 kri|d	 }||d	 krs|d	 }d
}	|	| |	| }
}| j || |¡ | j || | |¡ | j || | |
 ||| || || || ¡ | j || || | ¡ | j || || | | || |
 | || || | || ¡ | j || || ¡ | j || |
 || ||| | ||| | ¡ | j ||| ¡ | j ||| | || |
 ||| |¡ | j ¡  dS )zDraw rect tag.ÚwidthÚheightr   NÚxÚyr   r   é   g#JSQ¬á?)r   r   r   Ú	rectangler   Úline_tor   r   )r   r   r   r   r   r   r    r   r   Úarc_to_bezierÚc1Úc2r   r   r   Úrect-   sJ   

(ÿ(þ(ÿ*r'   c                 C   sŠ   |   | d¡| d¡|¡\}}|   | d¡| d¡|¡\}}| j ||¡ | j ||¡ t|| || ƒ}||ft| |f||fg|_dS )zDraw line tag.Úx1Úy1Úx2Úy2N)r   r   r   r   r#   r   r   Úvertices)r   r   r   r(   r)   r*   r+   Úangler   r   r   Úline[   s    r.   c                 C   s   t | ||ƒ | j ¡  dS )zDraw polygon tag.N)Úpolyliner   r   )r   r   r   r   r   r   Úpolygone   s   r0   c           	      C   s²   t | d¡ƒ}|rUt| ||ƒ\}}}| j ||¡ ||fg|_|rW||}}t| ||ƒ\}}}t|| || ƒ}|j t| |f¡ | j 	||¡ |j ||f¡ |s!dS dS dS )zDraw polyline tag.ÚpointsN)
r   r   r   r   r   r,   r   Úappendr   r#   )	r   r   r   r1   r   r    Úx_oldÚy_oldr-   r   r   r   r/   k   s   
úür/   N)Ú__doc__Úmathr   r   r   Úutilsr   r   r   r   r'   r.   r0   r/   r   r   r   r   Ú<module>   s    .
