| Server IP : 202.61.199.114 / Your IP : 216.73.217.139 Web Server : nginx/1.22.1 System : Linux de.arni-solutions.de 6.1.0-49-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64 User : web20 ( 1018) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/local/lib/python3.9/dist-packages/matplotlib/__pycache__/ |
Upload File : |
a
���h_� � @ sz d Z ddlZddlmZ ddlmZ ddlZddlZ ddl
mZmZ ddl
mZmZ ddlmZ G d d
� d
�Zdd� ZdS )
a�
A module for dealing with the polylines used throughout Matplotlib.
The primary class for polyline handling in Matplotlib is `Path`. Almost all
vector drawing makes use of `Path`\s somewhere in the drawing pipeline.
Whilst a `Path` instance itself cannot be drawn, some `.Artist` subclasses,
such as `.PathPatch` and `.PathCollection`, can be used for convenient `Path`
visualisation.
� N)� lru_cache)�WeakValueDictionary� )�_api�_path)�_to_unmasked_float_array�simple_linear_interpolation)�
BezierSegmentc s| e Zd ZdZejZed�Zed�Zed�Z ed�Z
ed�Zed�Zedede de
dedediZ
ddd
d�Zededd
��Zedd� �Zdd� Zedd� �Zejdd� �Zedd� �Zejdd� �Zedd� �Zejdd� �Zedd� �Zejdd� �Zedd� �Zd d!� Zdf� fd"d#� ZeZed$d%� �Zed&d'� �Zd(d)� Zd*d+� Z dgd.d/�Z!d0d1� Z"d2d3� Z#dhd d d-d dd4�d5d6�Z$d7d8� Z%did:d;�Z&djd<d=�Z'dkd>d?�Z(dld@dA�Z)dmdBdC�Z*dndDdE�Z+dFdG� Z,dodHdI�Z-dZ.edJdK� �Z/e0� Z1edLdM� �Z2e0� Z3edpdOdP��Z4edQdR� �Z5dZ6edSdT� �Z7edqdVdW��Z8dZ9edXdY� �Z:edrdZd[��Z;edsd\d]��Z<e=e>d^�dtd`da���Z?dudbdc�Z@� ZAS )v�Pathu�
A series of possibly disconnected, possibly closed, line and curve
segments.
The underlying storage is made up of two parallel numpy arrays:
- *vertices*: an (N, 2) float array of vertices
- *codes*: an N-length `numpy.uint8` array of path codes, or None
These two arrays always have the same length in the first
dimension. For example, to represent a cubic curve, you must
provide three vertices and three `CURVE4` codes.
The code types are:
- `STOP` : 1 vertex (ignored)
A marker for the end of the entire path (currently not required and
ignored)
- `MOVETO` : 1 vertex
Pick up the pen and move to the given vertex.
- `LINETO` : 1 vertex
Draw a line from the current position to the given vertex.
- `CURVE3` : 1 control point, 1 endpoint
Draw a quadratic Bézier curve from the current position, with the given
control point, to the given end point.
- `CURVE4` : 2 control points, 1 endpoint
Draw a cubic Bézier curve from the current position, with the given
control points, to the given end point.
- `CLOSEPOLY` : 1 vertex (ignored)
Draw a line segment to the start point of the current polyline.
If *codes* is None, it is interpreted as a `MOVETO` followed by a series
of `LINETO`.
Users of Path objects should not access the vertices and codes arrays
directly. Instead, they should use `iter_segments` or `cleaned` to get the
vertex/code pairs. This helps, in particular, to consistently handle the
case of *codes* being None.
Some behavior of Path objects can be controlled by rcParams. See the
rcParams whose keys start with 'path.'.
.. note::
The vertices and codes arrays should be treated as
immutable -- there are a number of optimizations and assumptions
made up front in the constructor that will not change when the
data changes.
r r � � � �O NFc C s$ t |�}tjd|d� |dur�t�|| j�}|jdksFt|�t|�kr^td|j � d|j � ���t|�r�|d | j
kr�td| j
� d |d � ���nB|r�t|�r�tjt|�| jd
�}| j
|d<