a
    [¨Xh  ã                   @   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   Zratior	   r
   © r   úZ/var/www/viveiro_mudafortebrasil/venv/lib/python3.9/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   Zratio_xZratio_yr	   r
   r   r   r   Úellipse   s(     ÿ ÿ ÿ ÿr   c              	   C   sD  |   | d¡| d¡|¡\}}|dks.|dkr2dS |   | d¡| d¡|¡\}}| d¡}| d¡}|rv|du rv|}n|r†|du r†|}|   |||¡\}}|dks¨|dkr¾| j ||||¡ dS ||d	 krÒ|d	 }||d	 kræ|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   Z	rectangler   Úline_tor   r   )r   r   r   r   r   r   r   r   r   Zarc_to_bezierZ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    r*   c           	      C   s¨   t | d¡ƒ}|r¤t| ||ƒ\}}}| j ||¡ ||fg|_|r¤|| }}t| ||ƒ\}}}t|| || ƒ}|j t| |f¡ | j 	||¡ |j ||f¡ q>dS )zDraw polyline tag.ÚpointsN)
r   r   r   r   r   r&   r   Úappendr   r   )	r   r   r   r+   r   r   Zx_oldZy_oldr'   r   r   r   r)   k   s    
r)   N)Ú__doc__Úmathr   r   r   Úutilsr   r   r   r   r!   r(   r*   r)   r   r   r   r   Ú<module>   s   .
