Outils pour utilisateurs

Outils du site


nsi:tds:maths:splines:bezier

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
Prochaine révision
Révision précédente
nsi:tds:maths:splines:bezier [2023/01/18 13:39] – [Formule] goupillwikinsi: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, i:int):     def calc_coeffs(self, i:int):
         '''         '''
         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'arc l'arc+        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 197: Ligne 187:
         t: flottant entre 0 et 1, compris         t: flottant entre 0 et 1, compris
         i: rang de l'arc considéré         i: rang de l'arc considéré
-        renvoie c0 + c1*t + c2*t**2 + c3*t**3 avec c0, c1, c2, c3 les coeffs de la fonction précédente.+        renvoie c0 + c1*t + c2*t**2 + c3*t**3 avec c0, c1, c2, c3 
 +        les coeffs de la fonction précédente. 
 +        ''' 
 +        # obtenir les valeurs des coefficients 
 +        # renvoie le résultat du calcul 
 + 
 +    def tangent(self, t:float, i:int): 
 +        t: flottant entre 0 et 1, compris 
 +        i: rang de l'arc considéré 
 +        renvoie c1 + 2*c2*t + 3*c3*t**2 avec c0, c1, c2, c3
         '''         '''
         # obtenir les valeurs des coefficients         # obtenir les valeurs des coefficients
Ligne 224: Ligne 223:
  
 <code python> <code python>
-demoplot.py+demobezier.py
 # démonstration en utilisant matplotlib # démonstration en utilisant matplotlib
  
Ligne 233: 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)]
-= Bezier(coords)+spline = Bezier(coords)
  
 # 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 243: Ligne 242:
  
 # tracé des points : # tracé des points :
-pts_curve b.curve_points() +len(coords
-x = [pt.x for pt in pts+x = [coords[i][0] for in range(0,n,3)
-y = [pt.y for pt in pts]+y = [coords[i][1] for in range(0,n,3)]
 plt.scatter(x, y, c='b') plt.scatter(x, y, c='b')
-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] for in range(n) if i%3 != 0
 +y = [coords[i][1] for in range(n) if i%3 != 0] 
 plt.scatter(x, y, c='y') plt.scatter(x, y, c='y')
 plt.show() plt.show()
nsi/tds/maths/splines/bezier.1674045571.txt.gz · Dernière modification : de goupillwiki