nsi:tds:maths:splines:bezier
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| nsi:tds:maths:splines:bezier [2023/01/22 19:20] – goupillwiki | nsi:tds:maths:splines:bezier [2023/01/22 19:25] (Version actuelle) – goupillwiki | ||
|---|---|---|---|
| Ligne 166: | Ligne 166: | ||
| # vérifier que le nombre de points est valide | # vérifier que le nombre de points est valide | ||
| self.points = [Point(x,y) for x,y in coords] | self.points = [Point(x,y) for x,y in coords] | ||
| - | | ||
| - | def curve_points(self): | ||
| - | ''' | ||
| - | renvoie la liste des points de self.points qui sont des points de la courbe | ||
| - | ''' | ||
| - | |||
| - | def control_points(self): | ||
| - | ''' | ||
| - | renvoie la liste des points de self.points qui sont des points de contrôle | ||
| - | ''' | ||
| | | ||
| def calc_coeffs(self, | def calc_coeffs(self, | ||
| ''' | ''' | ||
| i:indice de l'arc considéré | i:indice de l'arc considéré | ||
| - | la courbe de Bézier est calculée avec les points P0, P1, P2, P3 de l' | + | la courbe de Bézier est calculée avec les points P0, P1, P2, P3 de l'arc |
| on calcule 4 coefficients : | on calcule 4 coefficients : | ||
| c0 = P0 | c0 = P0 | ||
| Ligne 233: | Ligne 223: | ||
| <code python> | <code python> | ||
| - | # demoplot.py | + | # demobezier.py |
| # démonstration en utilisant matplotlib | # démonstration en utilisant matplotlib | ||
| Ligne 242: | Ligne 232: | ||
| (210, 100), (200,110), (100,200), | (210, 100), (200,110), (100,200), | ||
| (0,290), (10,350), (120,400)] | (0,290), (10,350), (120,400)] | ||
| - | b = Bezier(coords) | + | spline |
| # tracé de la courbe | # tracé de la courbe | ||
| - | pts = b.plot_points() | + | pts = spline.plot_points() |
| # dans matplotlib, il faut placer les x et les y dans deux listes séparées | # dans matplotlib, il faut placer les x et les y dans deux listes séparées | ||
| x = [pt.x for pt in pts] | x = [pt.x for pt in pts] | ||
| Ligne 252: | Ligne 242: | ||
| # tracé des points : | # tracé des points : | ||
| - | pts_curve | + | n = len(coords) |
| - | x = [pt.x for pt in pts] | + | x = [coords[i][0] |
| - | y = [pt.y for pt in pts] | + | y = [coords[i][1] |
| plt.scatter(x, | plt.scatter(x, | ||
| - | pts_control = b.control_points() | + | |
| - | x = [pt.x for pt in pts] | + | # tracé des contrôles |
| - | y = [pt.y for pt in pts] | + | x = [coords[i][0] |
| + | y = [coords[i][1] | ||
| plt.scatter(x, | plt.scatter(x, | ||
| plt.show() | plt.show() | ||
nsi/tds/maths/splines/bezier.1674411646.txt.gz · Dernière modification : de goupillwiki
