Vecteurs
Attention ! On ne peut pas additionner des coordonnées, mais en 3ème année nous avons vu comment additionner les vecteurs.
Pour travailler facilement avec les mathématiques des vecteurs en Python, il est essentiel d'utiliser le package NumPy. Ce dernier simplifie les opérations sur les vecteurs, comme la multiplication par un nombre réel ou l'addition de vecteurs. Grâce à NumPy, nous pouvons effectuer ces opérations de manière efficace et concise, ce qui est particulièrement utile dans le calcul des courbes de Bézier.
Rappel : les courbes de Bézier cubiques sont définies par quatre points de contrôle et pour déterminer la position d'un point sur la courbe à un moment donné t, il est nécessaire de réaliser plusieurs calculs impliquant des vecteurs.
Code
import pyxel
import numpy as npSEGMENTS = 1000def bezier_point(vec_ctrls, t): p = (1-t)**3 * vec_ctrls[0] + 3*(1-t)**2*t * vec_ctrls[1] + 3*(1-t)*t**2 * vec_ctrls[2] + t**3 * vec_ctrls[3] return p
def bezier_points(pt_ctrls):
vec_ctrls = np.array(pt_ctrls) points = [] for i in range(SEGMENTS + 1): t = i / SEGMENTS points.append(bezier_point(vec_ctrls, t)) return points
def trace(pt_ctrls, couleur): for p in bezier_points(pt_ctrls): pyxel.circ(*p, 2, couleur)
pyxel.init(400, 400)
pyxel.colors[0] = 0xAFD6B4pyxel.colors[1] = 0xf59690
pyxel.cls(0)
points_de_controle = [ [100, 100], [300, 100], [100, 300], [300, 300]]
trace(points_de_controle, 1)
pyxel.show()
Image
