matplotlib.bezier
#
Un module fournissant des fonctions utilitaires concernant la manipulation du chemin de Bézier.
- classe matplotlib.bezier. BézierSegment ( points_de_contrôle ) [source] #
Socles :
object
Un segment de Bézier de dimension d.
- Paramètres :
- tableau control_points (N, d)
Localisation des N points de contrôle.
- axis_aligned_extrema ( ) [source] #
Renvoie la dimension et l'emplacement des extrema intérieurs de la courbe.
Les extrema sont les points le long de la courbe où l'une de ses dérivées partielles est nulle.
- Retours :
- assombrit le tableau d'entiers
Indice\(i\)de la dérivée partielle nulle à chaque extremum intérieur.
- tableau dzeros de float
De même taille que dims. La\(t\)tel que\(d/dx_i B(t) = 0\)
- propriété control_points #
Les points de contrôle de la courbe.
- degré de propriété #
Degré du polynôme. Un moins le nombre de points de contrôle.
- dimension de propriété #
La dimension de la courbe.
- propriété polynomial_coefficients #
Les coefficients polynomiaux de la courbe de Bézier.
Avertissement
Suit la convention opposée de
numpy.polyval
.- Retours :
- (n+1, d) tableau
Coefficients après développement en base polynomiale, où\(n\) est le degré de la courbe de Bézier et\(d\)sa dimension. Ce sont les nombres (\(C_j\)) de sorte que la courbe puisse s'écrire\(\sum_{j=0}^n C_j t^j\).
Remarques
Les coefficients sont calculés comme
\[{n \choose j} \sum_{i=0}^j (-1)^{i+j} {j \choose i} P_i\]où\(P_i\)sont les points de contrôle de la courbe.
- exception matplotlib.bezier. NonIntersectingPathException [source] #
Socles :
ValueError
- matplotlib.bezier. check_if_parallel ( dx1 , dy1 , dx2 , dy2 , tolérance = 1e-05 ) [source] #
Vérifiez si deux droites sont parallèles.
- Paramètres :
- dx1, dy1, dx2, dy2 flottant
Les gradients dy / dx des deux lignes.
- flotteur de tolérance
La tolérance angulaire en radians jusqu'à laquelle les lignes sont considérées comme parallèles.
- Retours :
- est_parallèle
1 si deux droites sont parallèles dans le même sens.
-1 si deux droites sont parallèles en sens opposé.
Faux sinon.
- matplotlib.bezier. find_bezier_t_intersecting_with_closedpath ( bezier_point_at_t , inside_closedpath , t0 = 0.0 , t1 = 1.0 , tolerance = 0.01 ) [source] #
Trouvez l'intersection de la courbe de Bézier avec un chemin fermé.
Le point d'intersection t est approximé par deux paramètres t0 , t1 tels que t0 <= t <= t1 .
La recherche commence à partir de t0 et t1 et utilise un simple algorithme de bissectrice. Par conséquent, l'un des points d'extrémité doit être à l'intérieur du chemin tandis que l'autre ne l'est pas. La recherche s'arrête lorsque la distance des points paramétrés par t0 et t1 devient inférieure à la tolérance donnée .
- Paramètres :
- bezier_point_at_t appelable
Une fonction renvoyant les coordonnées x, y du Bézier au paramètre t . Il doit porter la signature :
bezier_point_at_t(t: float) -> tuple[float, float]
- inside_closedpath appelable
Une fonction renvoyant True si un point donné (x, y) se trouve à l'intérieur du chemin fermé. Il doit porter la signature :
inside_closedpath(point: tuple[float, float]) -> bool
- t0, t1 flottant
Paramètres de démarrage pour la recherche.
- flotteur de tolérance
Distance maximale autorisée entre les points finaux.
- Retours :
- t0, t1 flottant
Les paramètres du chemin de Bézier.
- matplotlib.bezier. find_control_points ( c1x , c1y , mmx , mmy , c2x , c2y ) [source] #
Trouvez les points de contrôle de la courbe de Bézier passant par ( c1x , c1y ), ( mmx , mmy ) et ( c2x , c2y ), aux valeurs paramétriques 0, 0,5 et 1.
- matplotlib.bezier. get_intersection ( cx1 , cy1 , cos_t1 , sin_t1 , cx2 , cy2 , cos_t2 , sin_t2 ) [source] #
Renvoie l'intersection entre la droite passant par ( cx1 , cy1 ) à l'angle t1 et la droite passant par ( cx2 , cy2 ) à l'angle t2 .
- matplotlib.bezier. get_normal_points ( cx , cy , cos_t , sin_t , longueur ) [source] #
Pour une droite passant par ( cx , cy ) et ayant un angle t , retourner les emplacements des deux points situés le long de sa droite perpendiculaire à la distance de longueur .
- matplotlib.bezier. get_parallels ( bezier2 , largeur ) [source] #
Étant donné les points de contrôle de Bézier quadratiques bezier2 , renvoie les points de contrôle des lignes de Bézier quadratiques à peu près parallèles à une ligne donnée séparées par width .
- matplotlib.bezier. cercle_intérieur ( cx , cy , r ) [source] #
Renvoie une fonction qui vérifie si un point est dans un cercle de centre ( cx , cy ) et de rayon r .
La fonction renvoyée porte la signature :
f(xy: tuple[float, float]) -> bool
- matplotlib.bezier. make_wedged_bezier2 ( bezier2 , largeur , w1 = 1.0 , wm = 0.5 , w2 = 0.0 ) [source] #
Semblable à get_parallels, renvoie les points de contrôle de deux lignes de Bézier quadratiques ayant une largeur à peu près parallèle à celle donnée séparée par width .
- matplotlib.bezier. split_bezier_intersecting_with_closedpath ( bezier , inside_closedpath , tolerance = 0.01 ) [source] #
Divisez une courbe de Bézier en deux à l'intersection avec un chemin fermé.
- Paramètres :
- Bézier (N, 2) en forme de tableau
Points de contrôle du segment Bézier. Voir
BezierSegment
.- inside_closedpath appelable
Une fonction renvoyant True si un point donné (x, y) se trouve à l'intérieur du chemin fermé. Voir aussi
find_bezier_t_intersecting_with_closedpath
.- flotteur de tolérance
La tolérance pour l'intersection. Voir aussi
find_bezier_t_intersecting_with_closedpath
.
- Retours :
- gauche droite
Listes des points de contrôle pour les deux segments de Bézier.