Mise à l'échelle des formes
Glissez pour afficher le menu
La mise à l'échelle est une transformation géométrique fondamentale qui modifie la taille d'une forme tout en préservant sa structure globale. Lorsque l'on applique une mise à l'échelle à une figure géométrique, chaque point de la forme se rapproche ou s'éloigne d'un point fixe, généralement l'origine, selon un facteur spécifique. Ce processus peut être uniforme, où toutes les dimensions sont multipliées par le même facteur, ou non uniforme, où différentes dimensions sont multipliées par des facteurs différents.
Dans la mise à l'échelle uniforme, chaque coordonnée de chaque point est multipliée par la même valeur. Cela conserve les proportions de la forme, ainsi un carré reste un carré et un cercle reste un cercle—simplement plus grand ou plus petit. Dans la mise à l'échelle non uniforme, chaque axe de coordonnées peut avoir un facteur d'échelle différent. Par exemple, on peut étirer un rectangle horizontalement tout en gardant sa hauteur inchangée, ce qui le transforme en un rectangle plus large.
Les transformations d'échelle sont couramment utilisées en infographie, modélisation et conception pour redimensionner des objets ou ajuster leurs proportions. Lorsque l'on met une forme à l'échelle, son aire et son périmètre changent de manière prévisible : pour une mise à l'échelle uniforme par un facteur k, le périmètre est multiplié par k et l'aire par k^2. Cependant, la mise à l'échelle non uniforme peut déformer la forme, modifiant les angles et les longueurs relatives des côtés.
12345678910111213141516171819202122232425262728import numpy as np import matplotlib.pyplot as plt def scale_polygon(vertices, scale_x, scale_y): scale_matrix = np.array([[scale_x, 0], [0, scale_y]]) return vertices @ scale_matrix.T # Define a triangle triangle = np.array([[1, 1], [3, 1], [2, 3], [1, 1]]) # Uniform scaling by factor 2 scaled_uniform = scale_polygon(triangle, 2, 2) # Non-uniform scaling: x by 2, y by 0.5 scaled_nonuniform = scale_polygon(triangle, 2, 0.5) # Plot original and scaled triangles plt.figure(figsize=(6, 6)) plt.plot(triangle[:,0], triangle[:,1], 'o-', label='Original') plt.plot(scaled_uniform[:,0], scaled_uniform[:,1], 'o-', label='Uniform scale (2x)') plt.plot(scaled_nonuniform[:,0], scaled_nonuniform[:,1], 'o-', label='Non-uniform scale (2x, 0.5y)') plt.legend() plt.axis('equal') plt.title('Scaling Transformations of a Triangle') plt.xlabel('X') plt.ylabel('Y') plt.show()
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion