matplotlib.bezier
#
Un modulo che fornisce alcune funzioni di utilità relative alla manipolazione dei percorsi di Bezier.
- classe matplotlib.bezier. BezierSegment ( control_points ) [fonte] #
Basi:
object
Un segmento di Bezier d-dimensionale.
- Parametri :
- control_points (N, d) matrice
Posizione degli N punti di controllo.
- axis_aligned_extrema ( ) [fonte] #
Restituisce la dimensione e la posizione degli estremi interni della curva.
Gli estremi sono i punti lungo la curva in cui una delle sue derivate parziali è zero.
- Resi :
- oscura l' array di int
Indice\(i\)della derivata parziale che è nulla in ogni estremo interno.
- matrice dzeros di float
Della stessa dimensione dei dims. Il\(t\)tale che\(d/dx_i B(t) = 0\)
- proprietà control_points #
I punti di controllo della curva.
- grado di proprietà #
Grado del polinomio. Uno in meno il numero di punti di controllo.
- dimensione proprietà n.
La dimensione della curva.
- proprietà coefficienti_polinomiali #
I coefficienti polinomiali della curva di Bézier.
Avvertimento
Segue la convenzione opposta da
numpy.polyval
.- Resi :
- (n+1, d) matrice
Coefficienti dopo l'espansione in base polinomiale, dove\(n\) è il grado della curva di bezier e\(d\)la sua dimensione. Questi sono i numeri (\(C_j\)) tale che la curva possa essere scritta\(\sum_{j=0}^n C_j t^j\).
Appunti
I coefficienti sono calcolati come
\[{n \choose j} \sum_{i=0}^j (-1)^{i+j} {j \choose i} P_i\]dove\(P_i\)sono i punti di controllo della curva.
- eccezione matplotlib.bezier. NonIntersectingPathException [fonte] #
Basi:
ValueError
- matplotlib.bezier. check_if_parallel ( dx1 , dy1 , dx2 , dy2 , tolleranza = 1e-05 ) [fonte] #
Controlla se due rette sono parallele.
- Parametri :
- dx1, dy1, dx2, dy2 float
I gradienti dy / dx delle due linee.
- galleggiante di tolleranza
La tolleranza angolare in radianti fino alla quale le linee sono considerate parallele.
- Resi :
- è_parallelo
1 se due rette sono parallele nella stessa direzione.
-1 se due rette sono parallele in direzione opposta.
Falso altrimenti.
- matplotlib.bezier. find_bezier_t_intersecting_with_closedpath ( bezier_point_at_t , inside_closedpath , t0 = 0.0 , t1 = 1.0 , tolerance = 0.01 ) [fonte] #
Trova l'intersezione della curva di Bézier con un percorso chiuso.
Il punto di intersezione t è approssimato da due parametri t0 , t1 tali che t0 <= t <= t1 .
La ricerca inizia da t0 e t1 e utilizza un semplice algoritmo di bisecazione, pertanto uno dei punti finali deve essere all'interno del percorso mentre l'altro no. La ricerca si interrompe quando la distanza dei punti parametrizzati da t0 e t1 diventa minore della tolleranza data .
- Parametri :
- bezier_point_at_t richiamabile
Una funzione che restituisce le coordinate x, y di Bezier al parametro t . Deve avere la firma:
bezier_point_at_t(t: float) -> tuple[float, float]
- inside_closedpath richiamabile
Una funzione che restituisce True se un dato punto (x, y) si trova all'interno del percorso chiuso. Deve avere la firma:
inside_closedpath(point: tuple[float, float]) -> bool
- t0, t1 fluttuano
Parametri di avvio per la ricerca.
- galleggiante di tolleranza
Distanza massima consentita tra i punti finali.
- Resi :
- t0, t1 fluttuano
I parametri del percorso Bezier.
- matplotlib.bezier. find_control_points ( c1x , c1y , mmx , mmy , c2x , c2y ) [fonte] #
Trova i punti di controllo della curva di Bezier passanti per ( c1x , c1y ), ( mmx , mmy ) e ( c2x , c2y ), ai valori parametrici 0, 0,5 e 1.
- matplotlib.bezier. get_intersection ( cx1 , cy1 , cos_t1 , sin_t1 , cx2 , cy2 , cos_t2 , sin_t2 ) [fonte] #
Restituisce l'intersezione tra la retta passante per ( cx1 , cy1 ) all'angolo t1 e la retta passante per ( cx2 , cy2 ) all'angolo t2 .
- matplotlib.bezier. get_normal_points ( cx , cy , cos_t , sin_t , lunghezza ) [fonte] #
Per una retta passante per ( cx , cy ) e avente un angolo t , restituire le posizioni dei due punti situati lungo la sua perpendicolare alla distanza della lunghezza .
- matplotlib.bezier. get_parallels ( bezier2 , width ) [fonte] #
Dati i punti di controllo di Bezier quadratici bezier2 , restituisce i punti di controllo delle linee di Bezier quadratiche approssimativamente parallele a quella data separate dalla larghezza .
- matplotlib.bezier. inside_circle ( cx , cy , r ) [fonte] #
Restituisce una funzione che verifica se un punto è in una circonferenza di centro ( cx , cy ) e raggio r .
La funzione restituita ha la firma:
f(xy: tuple[float, float]) -> bool
- matplotlib.bezier. make_wedged_bezier2 ( bezier2 , width , w1 = 1.0 , wm = 0.5 , w2 = 0.0 ) [fonte] #
Essendo simile a get_parallels, restituisce i punti di controllo di due linee Bezier quadratiche aventi una larghezza approssimativamente parallela a quella data separate da width .
- matplotlib.bezier. split_bezier_intersecting_with_closedpath ( bezier , inside_closedpath , tolleranza = 0.01 ) [fonte] #
Dividi una curva di Bezier in due all'intersezione con un percorso chiuso.
- Parametri :
- bezier (N, 2) simile a un array
Punti di controllo del segmento di Bezier. Vedi
BezierSegment
.- inside_closedpath richiamabile
Una funzione che restituisce True se un dato punto (x, y) si trova all'interno del percorso chiuso. Vedi anche
find_bezier_t_intersecting_with_closedpath
.- galleggiante di tolleranza
La tolleranza per l'intersezione. Vedi anche
find_bezier_t_intersecting_with_closedpath
.
- Resi :
- sinistra destra
Elenchi di punti di controllo per i due segmenti di Bezier.