matplotlib.bezier
#
Ein Modul, das einige nützliche Funktionen bezüglich der Bezier-Pfad-Manipulation bereitstellt.
- Klasse matplotlib.bezier. BezierSegment ( control_points ) [Quelle] #
Basen:
object
Ein d-dimensionales Bezier-Segment.
- Parameter :
- control_points (N, d) -Array
Lage der N Kontrollpunkte.
- axis_aligned_extrema ( ) [Quelle] #
Geben Sie die Dimension und Position der inneren Extrema der Kurve zurück.
Die Extrema sind die Punkte entlang der Kurve, an denen eine ihrer partiellen Ableitungen Null ist.
- Rückgaben :
- dimmt Array von int
Index\(i\)der partiellen Ableitung, die an jedem inneren Extrema Null ist.
- dzeros- Array von float
Gleiche Größe wie Dims. Das\(t\)so dass\(d/dx_i B(t) = 0\)
- Eigenschaft Kontrollpunkte #
Die Kontrollpunkte der Kurve.
- Eigenschaft Grad #
Grad des Polynoms. Eins weniger als die Anzahl der Kontrollpunkte.
- Eigenschaft Dimension #
Die Dimension der Kurve.
- point_at_t ( t ) [Quelle] #
Werten Sie die Kurve an einem einzelnen Punkt aus und geben Sie ein Tupel von d Floats zurück.
- Eigenschaft polynomial_coefficients #
Die Polynomkoeffizienten der Bezier-Kurve.
Warnung
Folgt der entgegengesetzten Konvention von
numpy.polyval
.- Rückgaben :
- (n+1, d)-Array
Koeffizienten nach Erweiterung auf Polynombasis, wo\(n\) ist der Grad der Bezierkurve und\(d\)seine Dimension. Das sind die Nummern (\(C_j\)) so dass die Kurve geschrieben werden kann\(\sum_{j=0}^n C_j t^j\).
Anmerkungen
Die Koeffizienten werden berechnet als
\[{n \choose j} \sum_{i=0}^j (-1)^{i+j} {j \choose i} P_i\]wo\(P_i\)sind die Kontrollpunkte der Kurve.
- Ausnahme matplotlib.bezier. NonIntersectingPathException [Quelle] #
Basen:
ValueError
- matplotlib.bezier. check_if_parallel ( dx1 , dy1 , dx2 , dy2 , Toleranz = 1e-05 ) [Quelle] #
Überprüfen Sie, ob zwei Linien parallel sind.
- Parameter :
- dx1, dy1, dx2, dy2 Float
Die Steigungen dy / dx der beiden Linien.
- Toleranzschwimmer _
Die Winkeltoleranz im Bogenmaß, bis zu der die Linien als parallel betrachtet werden.
- Rückgaben :
- ist_parallel
1, wenn zwei Geraden in derselben Richtung parallel sind.
-1, wenn zwei Geraden in entgegengesetzter Richtung parallel sind.
Sonst falsch.
- matplotlib.bezier. find_bezier_t_intersecting_with_closedpath ( bezier_point_at_t , inside_closedpath , t0 = 0,0 , t1 = 1,0 , Toleranz = 0,01 ) [Quelle] #
Finden Sie den Schnittpunkt der Bezier-Kurve mit einem geschlossenen Pfad.
Der Schnittpunkt t wird durch zwei Parameter t0 , t1 so angenähert, dass t0 <= t <= t1 .
Die Suche beginnt bei t0 und t1 und verwendet einen einfachen Halbierungsalgorithmus, daher muss einer der Endpunkte innerhalb des Pfads liegen, während der andere dies nicht tut. Die Suche stoppt, wenn der Abstand der durch t0 und t1 parametrisierten Punkte kleiner als die vorgegebene Toleranz wird .
- Parameter :
- bezier_point_at_t aufrufbar
Eine Funktion, die die x-, y-Koordinaten des Beziers am Parameter t zurückgibt . Es muss die Signatur haben:
bezier_point_at_t(t: float) -> tuple[float, float]
- inside_closedpath aufrufbar
Eine Funktion, die True zurückgibt, wenn sich ein bestimmter Punkt (x, y) innerhalb des geschlossenen Pfads befindet. Es muss die Signatur haben:
inside_closedpath(point: tuple[float, float]) -> bool
- t0, t1 Schwimmer
Startparameter für die Suche.
- Toleranzschwimmer _
Maximal zulässiger Abstand zwischen den Endpunkten.
- Rückgaben :
- t0, t1 Schwimmer
Die Bezier-Pfadparameter.
- matplotlib.bezier. find_control_points ( c1x , c1y , mmx , mmy , c2x , c2y ) [Quelle] #
Suchen Sie Kontrollpunkte der Bezier-Kurve, die durch ( c1x , c1y ), ( mmx , mmy ) und ( c2x , c2y ) verlaufen, bei den Parameterwerten 0, 0,5 und 1.
- matplotlib.bezier. get_intersection ( cx1 , cy1 , cos_t1 , sin_t1 , cx2 , cy2 , cos_t2 , sin_t2 ) [Quelle] #
Geben Sie den Schnittpunkt zwischen der Linie durch ( cx1 , cy1 ) bei Winkel t1 und der Linie durch ( cx2 , cy2 ) bei Winkel t2 zurück .
- matplotlib.bezier. get_normal_points ( cx , cy , cos_t , sin_t , length ) [Quelle] #
Für eine Linie, die durch ( cx , cy ) verläuft und einen Winkel t hat, kehren Sie die Positionen der beiden Punkte zurück, die entlang ihrer senkrechten Linie im Abstand von length liegen .
- matplotlib.bezier. get_parallels ( bezier2 , width ) [Quelle] #
Gibt bei gegebenen quadratischen Bezier-Kontrollpunkten bezier2 Kontrollpunkte von quadratischen Bezier-Linien zurück, die grob parallel zu den gegebenen durch width getrennt sind .
- matplotlib.bezier. inside_circle ( cx , cy , r ) [Quelle] #
Gibt eine Funktion zurück, die prüft, ob sich ein Punkt in einem Kreis mit Mittelpunkt ( cx , cy ) und Radius r befindet .
Die zurückgegebene Funktion hat die Signatur:
f(xy: tuple[float, float]) -> bool
- matplotlib.bezier. make_wedged_bezier2 ( bezier2 , width , w1 = 1.0 , wm = 0.5 , w2 = 0.0 ) [Quelle] #
Ähnlich wie get_parallels gibt es Kontrollpunkte von zwei quadratischen Bezier-Linien zurück, die eine Breite haben, die ungefähr parallel zu einer gegebenen ist, getrennt durch width .
- matplotlib.bezier. split_bezier_intersecting_with_closedpath ( bezier , inside_closedpath , Toleranz = 0,01 ) [Quelle] #
Teilen Sie eine Bezier-Kurve am Schnittpunkt mit einem geschlossenen Pfad in zwei Teile.
- Parameter :
- bezier (N, 2) Array-artig
Kontrollpunkte des Bezier-Segments. Siehe
BezierSegment
.- inside_closedpath aufrufbar
Eine Funktion, die True zurückgibt, wenn sich ein bestimmter Punkt (x, y) innerhalb des geschlossenen Pfads befindet. Siehe auch
find_bezier_t_intersecting_with_closedpath
.- Toleranzschwimmer _
Die Toleranz für den Schnittpunkt. Siehe auch
find_bezier_t_intersecting_with_closedpath
.
- Rückgaben :
- links rechts
Listen von Kontrollpunkten für die beiden Bezier-Segmente.