
    tKg[                     n    d dl Zd dlmZ g dZed	d       Zd Zed	d       Zed	d       Z	ed	d       Z
y)
    N)	decorator)delaunay_plot_2dconvex_hull_plot_2dvoronoi_plot_2dc                 0   dd l m} |+|j                         }|j                         } | |fd|i|S  t	        |dd              }|r | |fd|i|S 	 |j                  d        | |fd|i||j                  |       S # |j                  |       w xY w)Nr   axisholdc                       y)NT r       \/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/scipy/spatial/_plotutils.py<lambda>z_held_figure.<locals>.<lambda>   s    Tr   T)matplotlib.pyplotpyplotfiguregcagetattrhold)funcobjr   kwpltfigwas_helds          r   _held_figurer      s    #	zjjlWWYC%B%"%% 3wr8\24HC%B%"%%
C%B%"%
s   B Bc                     dt        j                  |d      z  }|j                  d      |z
  }|j                  d      |z   }| j	                  |d   |d          | j                  |d   |d          y )Ng?r   axis   )npptpminmaxset_xlimset_ylim)r   pointsmarginxy_minxy_maxs        r   _adjust_boundsr*      sm    266&q))FZZQZ&(FZZQZ&(FKKq	6!9%KKq	6!9%r   c                 B   | j                   j                  d   dk7  rt        d      | j                   j                  \  }}|j	                  ||d       |j                  ||| j                  j                                t        || j                          |j                  S )aB  
    Plot the given Delaunay triangulation in 2-D

    Parameters
    ----------
    tri : scipy.spatial.Delaunay instance
        Triangulation to plot
    ax : matplotlib.axes.Axes instance, optional
        Axes to plot on

    Returns
    -------
    fig : matplotlib.figure.Figure instance
        Figure for the plot

    See Also
    --------
    Delaunay
    matplotlib.pyplot.triplot

    Notes
    -----
    Requires Matplotlib.

    Examples
    --------

    >>> import numpy as np
    >>> import matplotlib.pyplot as plt
    >>> from scipy.spatial import Delaunay, delaunay_plot_2d

    The Delaunay triangulation of a set of random points:

    >>> rng = np.random.default_rng()
    >>> points = rng.random((30, 2))
    >>> tri = Delaunay(points)

    Plot it:

    >>> _ = delaunay_plot_2d(tri)
    >>> plt.show()

    r      z!Delaunay triangulation is not 2-Do)
r&   shape
ValueErrorTplottriplot	simplicescopyr*   r   )trir   xys       r   r   r   $   s~    Z zza<==::<<DAqGGAq#JJq!S]]'')*2szz"99r   c                    ddl m} | j                  j                  d   dk7  rt	        d      |j                  | j                  dddf   | j                  dddf   d       | j                  D cg c]  }| j                  |    }}|j                   ||dd	
             t        || j                         |j                  S c c}w )a&  
    Plot the given convex hull diagram in 2-D

    Parameters
    ----------
    hull : scipy.spatial.ConvexHull instance
        Convex hull to plot
    ax : matplotlib.axes.Axes instance, optional
        Axes to plot on

    Returns
    -------
    fig : matplotlib.figure.Figure instance
        Figure for the plot

    See Also
    --------
    ConvexHull

    Notes
    -----
    Requires Matplotlib.


    Examples
    --------

    >>> import numpy as np
    >>> import matplotlib.pyplot as plt
    >>> from scipy.spatial import ConvexHull, convex_hull_plot_2d

    The convex hull of a random set of points:

    >>> rng = np.random.default_rng()
    >>> points = rng.random((30, 2))
    >>> hull = ConvexHull(points)

    Plot it:

    >>> _ = convex_hull_plot_2d(hull)
    >>> plt.show()

    r   LineCollectionr   r,   zConvex hull is not 2-DNr-   ksolid)colors	linestyle)
matplotlib.collectionsr:   r&   r.   r/   r1   r3   add_collectionr*   r   )hullr   r:   simplexline_segmentss        r   r   r   ]   s    Z 6{{q 122GGDKK1t{{1a40#69=HgT[[)MHn],//68 9 2t{{#99 Is   1Cc           	         ddl m} | j                  j                  d   dk7  rt	        d      |j                  dd      rI|j                  dd	      }|j                  | j                  d	d	df   | j                  d	d	df   d
|       |j                  dd      r5|j                  | j                  d	d	df   | j                  d	d	df   d       |j                  dd      }|j                  dd      }|j                  dd      }| j                  j                  d      }t        j                  | j                  d      }	g }
g }t        | j                  | j                        D ]  \  }}t        j                  |      }t        j                  |dk\        r|
j!                  | j                  |          S||dk\     d   }| j                  |d      | j                  |d      z
  }|t        j"                  j%                  |      z  }t        j&                  |d    |d   g      }| j                  |   j                  d      }t        j(                  t        j*                  ||z
  |            |z  }| j,                  r| }t/        |	j1                         |	j3                         z        }| j                  |   ||	j1                         z  |z  z   }|j!                  | j                  |   |g        |j5                   ||
|||d             |j5                   |||||d             t7        || j                         |j8                  S )a;  
    Plot the given Voronoi diagram in 2-D

    Parameters
    ----------
    vor : scipy.spatial.Voronoi instance
        Diagram to plot
    ax : matplotlib.axes.Axes instance, optional
        Axes to plot on
    show_points : bool, optional
        Add the Voronoi points to the plot.
    show_vertices : bool, optional
        Add the Voronoi vertices to the plot.
    line_colors : string, optional
        Specifies the line color for polygon boundaries
    line_width : float, optional
        Specifies the line width for polygon boundaries
    line_alpha : float, optional
        Specifies the line alpha for polygon boundaries
    point_size : float, optional
        Specifies the size of points

    Returns
    -------
    fig : matplotlib.figure.Figure instance
        Figure for the plot

    See Also
    --------
    Voronoi

    Notes
    -----
    Requires Matplotlib.

    Examples
    --------
    >>> import numpy as np
    >>> import matplotlib.pyplot as plt
    >>> from scipy.spatial import Voronoi, voronoi_plot_2d

    Create a set of points for the example:

    >>> rng = np.random.default_rng()
    >>> points = rng.random((10,2))

    Generate the Voronoi diagram for the points:

    >>> vor = Voronoi(points)

    Use `voronoi_plot_2d` to plot the diagram:

    >>> fig = voronoi_plot_2d(vor)

    Use `voronoi_plot_2d` to plot the diagram again, with some settings
    customized:

    >>> fig = voronoi_plot_2d(vor, show_vertices=False, line_colors='orange',
    ...                       line_width=2, line_alpha=0.6, point_size=2)
    >>> plt.show()

    r   r9   r   r,   zVoronoi diagram is not 2-Dshow_pointsT
point_sizeN.)
markersizeshow_verticesr-   line_colorsr;   
line_widthg      ?
line_alphar   r<   )r=   lwalphar>   dashed)r?   r:   r&   r.   r/   getr1   verticesmeanr    r!   zipridge_pointsridge_verticesasarrayallappendlinalgnormarraysigndotfurthest_siteabsr#   r"   r@   r*   r   )vorr   r   r:   rF   rJ   rK   rL   center	ptp_boundfinite_segmentsinfinite_segmentspointidxrB   itnmidpoint	directionaspect_factor	far_points                        r   r   r      s   @ 6
zza566	vvmT"VVL$/



1a4 #**QT"2CJO	vvot$
QT"CLLA$6<&&,Kc*Jc*JZZ__!_$Fszz*IO !1!133E3EF'**W%66'Q,""3<<#891%a(A

8A;'#**Xa[*AAA""A1Q4%1'Azz(+00a08Hx&'8! <=AI!!&J		)--/ ABMQ)immo*E*UUI$$cll1oy%AB% G( n_,7(2+5/6	8 9
 n%6,7(2+5/7	9 : 2szz"99r   )N)numpyr    scipy._lib.decoratorr   
_decorator__all__r   r*   r   r   r   r   r   r   <module>rq      si     8
H  (& 5 5p 8 8v t tr   