Outils pour utilisateurs

Outils du site


nsi:tds:maths:splines:catmull_rom

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
nsi:tds:maths:splines:catmull_rom [2023/01/22 19:30] – [Utilisation avec matplotlib] goupillwikinsi:tds:maths:splines:catmull_rom [2023/01/22 19:32] (Version actuelle) goupillwiki
Ligne 14: Ligne 14:
  
 À l'usage, on réalise que cette méthode donne de bons résultats mais les courbes obtenues sont un peu trop tordues. On bricole un peu et on décide de choisir comme vecteur tangent $\tau\overrightarrow{P_{i-1}P_{i+1}}$ où $\tau$ est un réglage à choisir entre $0$ et $1$. $\tau = 0,5$ est par exemple un bon choix. À l'usage, on réalise que cette méthode donne de bons résultats mais les courbes obtenues sont un peu trop tordues. On bricole un peu et on décide de choisir comme vecteur tangent $\tau\overrightarrow{P_{i-1}P_{i+1}}$ où $\tau$ est un réglage à choisir entre $0$ et $1$. $\tau = 0,5$ est par exemple un bon choix.
 +
 +$\tau$ est appelé **tension**.
  
 ===== Problème des extrémités ===== ===== Problème des extrémités =====
Ligne 75: Ligne 77:
  
 class Catmullrom: class Catmullrom:
-    TAU = 0.5 +    def __init__(self, pts, tau = 0.5):
-    def __init__(self, pts):+
         '''         '''
         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 get_point(self, i):     def get_point(self, i):
nsi/tds/maths/splines/catmull_rom.1674412209.txt.gz · Dernière modification : de goupillwiki