
    Bh                     P    S r SSKJrJrJr  SSKJrJr  S rS r	S r
S rS	 rS
 rg)zDraw simple shapes.    )atan2pisqrt   )	normalizepointc           	         U R                  UR                  S5      U5      nU(       d  gU[        [        5      -  nU R	                  UR                  S5      UR                  S5      U5      u  pVU R
                  R                  XS-   U5        U R
                  R                  XS-   Xd-   XT-   Xc-   XVU-   5        U R
                  R                  XT-
  Xc-   XS-
  Xd-   XS-
  U5        U R
                  R                  XS-
  Xd-
  XT-
  Xc-
  XVU-
  5        U R
                  R                  XT-   Xc-
  XS-   Xd-
  XS-   U5        U R
                  R                  5         g)zDraw circle tag.rNcxcy)	lengthgetr   r   r   streammove_tocurve_toclose)svgnode	font_sizer
   ratior   r   s          G/var/www/html/env/lib/python3.13/site-packages/weasyprint/svg/shapes.pycircler      s   

488C=),ARLEYYtxx~txx~yAFBJJrvr"JJ
BJFKJJ
BFBFBJKJJ
BJFKJJ
BFBFBJKJJ    c           	         U R                  UR                  S5      UR                  S5      U5      u  p4U(       a  U(       d  gU[        [        5      -  nU[        [        5      -  nU R                  UR                  S5      UR                  S5      U5      u  pxU R                  R                  Xs-   U5        U R                  R                  Xs-   X-   Xu-   X-   XxU-   5        U R                  R                  Xu-
  X-   Xs-
  X-   Xs-
  U5        U R                  R                  Xs-
  X-
  Xu-
  X-
  XxU-
  5        U R                  R                  Xu-   X-
  Xs-   X-
  Xs-   U5        U R                  R                  5         g)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   s	            r   ellipser      s:   YYtxx~txx~yAFBR48mG48mGYYtxx~txx~yAFBJJrw#JJ
r|RWbr'CJJ
bgrwbgrCJJ
r|RWbr'CJJ
bgrwbgrCJJr   c           	      $   U R                  UR                  S5      UR                  S5      U5      u  p4US::  d  US::  a  gU R                  UR                  S5      UR                  S5      U5      u  pVUR                  S5      nUR                  S5      nU(       a  Uc  UnOU(       a  Uc  UnU R                  XxU5      u  pxUS:X  d  US:X  a  U R                  R                  XVX45        gXsS	-  :  a  US	-  nXS	-  :  a  US	-  nS
n	X-  X-  pU R                  R	                  XW-   U5        U R                  R                  XS-   U-
  U5        U R                  R                  XS-   U-
  U
-   XeU-   Xk-   XS-   Xh-   5        U R                  R                  XS-   Xd-   U-
  5        U R                  R                  XS-   Xd-   U-
  U-   XS-   U
-   U-
  Xd-   XS-   U-
  Xd-   5        U R                  R                  XW-   Xd-   5        U R                  R                  XW-   U
-
  Xd-   XVU-   U-
  XVU-   U-
  5        U R                  R                  XVU-   5        U R                  R                  XVU-   U-
  XW-   U
-
  XeU-   U5        U R                  R                  5         g)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c2s               r   rectr+   -   s[   IIdhhw/(1CYOMEzVq[99TXXc]DHHSM9=DA	$B	$B	bj	
YYry)FB	Qw"'

Q51	AI~QY	QJaZ *M!3JJqvq!JJqy2~q)JJ		BQE	1619afFJJqy!*r/2JJ		1:?R'R")<aj		B
$ JJqvqz*JJ	QZJOQF
RIJJqb&!JJr6B;QBBJJr   c                    U R                  UR                  S5      UR                  S5      U5      u  p4U R                  UR                  S5      UR                  S5      U5      u  pVU R                  R                  X45        U R                  R	                  XV5        [        Xd-
  XS-
  5      nX44[        U-
  U4XV4/Ul        g)zDraw line tag.x1y1x2y2N)r   r   r   r   r'   r   r   vertices)r   r   r   r-   r.   r/   r0   angles           r   liner3   [   s    YYtxx~txx~yAFBYYtxx~txx~yAFBJJrJJr"'27#EXU
E2RH=DMr   c                 P    [        XU5        U R                  R                  5         g)zDraw polygon tag.N)polyliner   r   )r   r   r   s      r   polygonr6   e   s    S	"JJr   c                    [        UR                  S5      5      nU(       a  [        XU5      u  pEnU R                  R	                  XE5        XE4/Ul        U(       a  XEpv[        XU5      u  pEn[        XF-
  XW-
  5      nUR
                  R                  [        U-
  U45        U R                  R                  XE5        UR
                  R                  XE45        U(       a  M  ggg)zDraw polyline tag.pointsN)
r   r   r   r   r   r1   r   appendr   r'   )	r   r   r   r8   r#   r$   x_oldy_oldr2   s	            r   r5   r5   k   s    txx)*FS)4f

1 5 i8LA&!)QY/EMM  "u*e!45JJq$MM  !( f	 r   N)__doc__mathr   r   r   utilsr   r   r   r   r+   r3   r6   r5    r   r   <module>r@      s0         # *+\>)r   