nsi:tds:maths:splines:catmull_rom
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:catmull_rom [2023/01/22 19:20] – goupillwiki | nsi:tds:maths:splines:catmull_rom [2023/01/22 19:32] (Version actuelle) – goupillwiki | ||
|---|---|---|---|
| Ligne 14: | Ligne 14: | ||
| À l' | À l' | ||
| + | |||
| + | $\tau$ est appelé **tension**. | ||
| ===== Problème des extrémités ===== | ===== Problème des extrémités ===== | ||
| Ligne 75: | Ligne 77: | ||
| class Catmullrom: | class Catmullrom: | ||
| - | | + | def __init__(self, |
| - | | + | |
| ''' | ''' | ||
| pts: liste de paires (x,y) représentant les points | pts: liste de paires (x,y) représentant les points | ||
| + | tau: tension de la spline. Par défaut 0.5 | ||
| ''' | ''' | ||
| assert len(pts) >= 2, "Il faut au moins deux points dans la spline." | assert len(pts) >= 2, "Il faut au moins deux points dans la spline." | ||
| self.points = [Point(x,y) for x,y in pts] | self.points = [Point(x,y) for x,y in pts] | ||
| + | assert 0 <= tau <= 1 | ||
| + | self.tau = tau | ||
| | | ||
| - | def curve_points(self): | ||
| - | ''' | ||
| - | renvoie la liste des points de self.points qui sont des points de la courbe | ||
| - | ''' | ||
| - | |||
| def get_point(self, | def get_point(self, | ||
| ''' | ''' | ||
| Ligne 157: | Ligne 156: | ||
| <code python> | <code python> | ||
| - | # demoplot.py | + | # democatmullrom.py |
| # démonstration en utilisant matplotlib | # démonstration en utilisant matplotlib | ||
| Ligne 165: | Ligne 164: | ||
| pts = [(10,50), (200, 400), (300, 300), (500, 200)] | pts = [(10,50), (200, 400), (300, 300), (500, 200)] | ||
| - | s = Catmullrom(pts) | + | spline |
| # tracé de la courbe | # tracé de la courbe | ||
| - | pts = s.plot_points() | + | plot_pts |
| # 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 plot_pts |
| - | y = [pt.y for pt in pts] | + | y = [pt.y for pt in plot_pts |
| plt.plot(x, y) | plt.plot(x, y) | ||
| # tracé des points : | # tracé des points : | ||
| - | pts_curve = s.curve_points() | + | x = [x for x, y in pts] |
| - | x = [pt.x for pt in pts] | + | y = [y for x, y in pts] |
| - | y = [pt.y for pt in pts] | + | |
| plt.scatter(x, | plt.scatter(x, | ||
nsi/tds/maths/splines/catmull_rom.1674411606.txt.gz · Dernière modification : de goupillwiki
