matplotlib.patches.Arc #
- classe matplotlib.patches. Arco ( xy , larghezza , altezza , * , angolo = 0.0 , theta1 = 0.0 , theta2 = 360.0 , ** kwargs ) [fonte] #
Basi:
Ellipse
Un arco ellittico, cioè un segmento di un'ellisse.
A causa di ottimizzazioni interne, l'arco non può essere riempito.
- Parametri :
- xy (flottante, mobile)
Il centro dell'ellisse.
- larghezza galleggiante
La lunghezza dell'asse orizzontale.
- galleggiante in altezza
La lunghezza dell'asse verticale.
- galleggiante angolare
Rotazione dell'ellisse in gradi (senso antiorario).
- theta1, theta2 float, predefinito: 0, 360
Angoli iniziale e finale dell'arco in gradi. Questi valori sono relativi ad angle , ad esempio se angle = 45 e theta1 = 90 l'angolo di partenza assoluto è 135. Di default theta1 = 0, theta2 = 360, cioè un'ellisse completa. L'arco è disegnato in senso antiorario. Gli angoli maggiori o uguali a 360, o minori di 0, sono rappresentati da un angolo equivalente nell'intervallo [0, 360), prendendo il valore di input mod 360.
- Altri parametri :
- ** proprietà kwargs
Patch
La maggior parte delle
Patch
proprietà sono supportate come argomenti di parole chiave, ad eccezione di fill e facecolor perché il riempimento non è supportato.Proprietà
Descrizione
una funzione di filtro, che accetta un array float (m, n, 3) e un valore dpi e restituisce un array (m, n, 3) e due offset dall'angolo in basso a sinistra dell'immagine
sconosciuto
bool
antialiased
o aabool o Nessuno
CapStyle
o {'culo', 'sporgente', 'rotondo'}bool
Patch o (Percorso, Trasforma) o Nessuno
colore
edgecolor
o ecccolore o Nessuno
facecolor
o fccolore o Nessuno
bool
str
{'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'}
bool
JoinStyle
o {'mitre', 'round', 'bevel'}oggetto
linestyle
o ls{'-', '--', '-.', ':', '', (offset, on-off-seq), ...}
linewidth
o lwfloat o Nessuno
bool
Nessuno o bool o float o richiamabile
bool
(scala: float, lunghezza: float, casualità: float)
bool o Nessuno
str
bool
galleggiante
- ** proprietà kwargs
- draw ( renderer ) [fonte] #
Disegna l'arco al renderer dato .
Appunti
Le ellissi vengono normalmente disegnate utilizzando un'approssimazione che utilizza otto spline di Bezier cubiche. L'errore di questa approssimazione è 1.89818e-6, secondo questa fonte non verificata:
Lancaster, Don. Approssimazione di un cerchio o di un'ellisse utilizzando quattro spline cubiche di Bezier.
Esiste un caso d'uso in cui è necessario disegnare ellissi molto grandi con una precisione molto elevata ed è troppo costoso eseguire il rendering dell'intera ellisse con un numero sufficiente di segmenti (spline o segmenti di linea). Pertanto, nel caso in cui uno dei due raggi dell'ellisse sia sufficientemente grande da rendere visibile l'errore dell'approssimazione della spline (maggiore di un pixel di scostamento dall'ideale), viene utilizzata una tecnica diversa.
In tal caso, vengono disegnate solo le parti visibili dell'ellisse, con ciascun arco visibile che utilizza un numero fisso di segmenti di spline (8). L'algoritmo procede come segue:
Si trovano i punti in cui l'ellisse interseca il riquadro di delimitazione degli assi (o della figura). (Questo viene fatto eseguendo una trasformazione inversa sulla bbox in modo tale che sia relativa al cerchio unitario: questo rende il calcolo dell'intersezione molto più semplice rispetto a eseguire direttamente l'intersezione dell'ellisse ruotata.)
Questo utilizza l'algoritmo "linea che interseca un cerchio" da:
Vincenzo, Giovanni. Geometria per computer grafica: formule, esempi e dimostrazioni. Londra: Springer-Verlag, 2005.
Vengono calcolati gli angoli di ciascuno dei punti di intersezione.
Procedendo in senso antiorario a partire dalla direzione x positiva, ciascuno dei segmenti d'arco visibili tra le coppie di vertici viene disegnato utilizzando la tecnica di approssimazione dell'arco di Bezier implementata in
Path.arc
.
- set ( * , agg_filter=<UNSET> , alpha=<UNSET> , angle=<UNSET> , animation=<UNSET> , antialiased=<UNSET> , capstyle=<UNSET> , center=<UNSET> , clip_box=<UNSET > , clip_on=<UNSET> , clip_path=<UNSET> , color=<UNSET> , edgecolor=<UNSET> , facecolor=<UNSET> , fill=<UNSET> , gid=<UNSET> , hatch=<UNSET> , altezza=<UNSET> ,in_layout=<UNSET> ,joinstyle=<UNSET> , label=<UNSET> , linestyle=<UNSET> , linewidth=<UNSET> , mouseover=<UNSET> , path_effects=<UNSET> , picker=<UNSET> , rasterized=<UNSET> , sketch_params= <UNSET> , snap=<UNSET> , transform=<UNSET> , url=<UNSET> , visible=<UNSET> , width=<UNSET> , zorder=<UNSET> ) [source] #
Imposta più proprietà contemporaneamente.
Le proprietà supportate sono
Proprietà
Descrizione
una funzione di filtro, che accetta un array float (m, n, 3) e un valore dpi e restituisce un array (m, n, 3) e due offset dall'angolo in basso a sinistra dell'immagine
scalare o Nessuno
galleggiante
bool
antialiased
o aabool o Nessuno
CapStyle
o {'culo', 'sporgente', 'rotondo'}(galleggiare, galleggiare)
bool
Patch o (Percorso, Trasforma) o Nessuno
colore
edgecolor
o ecccolore o Nessuno
facecolor
o fccolore o Nessuno
bool
str
{'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'}
galleggiante
bool
JoinStyle
o {'mitre', 'round', 'bevel'}oggetto
linestyle
o ls{'-', '--', '-.', ':', '', (offset, on-off-seq), ...}
linewidth
o lwfloat o Nessuno
bool
Nessuno o bool o float o richiamabile
bool
(scala: float, lunghezza: float, casualità: float)
bool o Nessuno
str
bool
galleggiante
galleggiante
Esempi che utilizzano matplotlib.patches.Arc
#
Scala etichetta angolo invariante