Escalonamento de Formas
Deslize para mostrar o menu
A escala é uma transformação geométrica fundamental que altera o tamanho de uma forma enquanto preserva sua estrutura geral. Ao aplicar a escala a uma figura geométrica, cada ponto da forma se move para mais perto ou mais longe de um ponto fixo, geralmente a origem, por um fator específico. Esse processo pode ser uniforme, quando todas as dimensões são escaladas pelo mesmo fator, ou não uniforme, quando diferentes dimensões são escaladas por fatores distintos.
Na escala uniforme, cada coordenada de cada ponto é multiplicada pelo mesmo valor. Isso mantém as proporções da forma, de modo que um quadrado continua sendo um quadrado e um círculo continua sendo um círculo—apenas maiores ou menores. Na escala não uniforme, cada eixo de coordenada pode ter um fator de escala diferente. Por exemplo, é possível alongar um retângulo horizontalmente mantendo sua altura, tornando-o um retângulo mais largo.
Transformações de escala são comumente utilizadas em computação gráfica, modelagem e design para redimensionar objetos ou ajustar suas proporções. Ao escalar uma forma, sua área e perímetro mudam de maneiras previsíveis: para uma escala uniforme por um fator k, o perímetro é multiplicado por k e a área por k^2. No entanto, a escala não uniforme pode distorcer a forma, alterando ângulos e comprimentos relativos dos lados.
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()
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo