o
    i                     @   sF   d dl Zd dlmZ d dlmZ d dlZdd Zddd	Zd
d ZdS )    N)degrees)cbookc                 C   s*   |dkr| dkrt d dS t| |S )Nr   zdx and dy are 0)r   _warn_externalmathatan2)dydx r	   \/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/mpl_toolkits/axisartist/clip_path.pyr      s   
r   rightTc                 C   s  g }g }g }|r
dnd}	|rdnd}
t | |D ]O\}}|dv r4||k d}|dd  |d d  }n||kd}|dd  |d d  }|d rNd}nd}g g }}t|D ]\}|| }|dkr|||  }||d  ||  |||d  ||    }|| | }|t||||d  |gg |t||||d  |gg d}g g }}|dkr|dkr||d  ||  }||d  ||  }tt|
| |	| }||||f qZ|dkrE|||  }||d  ||  |||d  ||    }|| | }|g|g}}|d }|dkr2|dkr2||d  ||  }||d  ||  }tt|
| |	| }||||f qZ|dkrg|t|||d  g |t|||d  g q|||fS )N   )upr   ir   g        )zipastypenpargwhereappendconcatenater   r   )xlinesylinesx0clipxdirydirclipped_xlinesclipped_ylines_pos_anglesxsignysignxybdbnssegxsegyr   cr   r   y0ar	   r	   r
   r      s^   
,$$

,

r   c                    sl   j \}}}}||k}||k}||kr0t| g|g|d||d\}	}
}t|	|
|d||d\}}}nt| g|g|d||d\}	}
}t|	|
|d||d\}}}||krkt|||d||d\}}}t|||d||d\}}}nt|||d||d\}}}t|||d||d\}}} fdd|D } fdd|D } fdd|D } fdd|D }tt||||||gfS )	Nr   )r   r   r   leftc                    s4   g | ]\}}}  |r||f|d  d d  fqS Z      	containsy.0r!   r"   r*   bboxr	   r
   
<listcomp>m       z%clip_line_to_rect.<locals>.<listcomp>c                    s0   g | ]\}}}  |r||fd | d fqS r,   	containsxr2   r"   r!   r*   r3   r	   r
   r5   o   s    c                    s4   g | ]\}}}  |r||f|d  d d  fqS r,   r/   r1   r3   r	   r
   r5   q   r6   c                    s4   g | ]\}}}  |r||fd | d d fqS r,   r7   r9   r3   r	   r
   r5   s   r6   )extentsr   listr   )xlineyliner4   r   r)   x1y1r   r   lx1ly1c_right_lx2ly2c_left_ly3lx3c_top_ly4lx4	c_bottom_c_leftc_bottomc_rightc_topr	   r3   r
   clip_line_to_rectP   sD   rP   )r   TT)	numpyr   r   r   
matplotlibr   r   r   rP   r	   r	   r	   r
   <module>   s    

?