Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Escalonamento de Formas | Transformações Geométricas
Modelagem Geométrica com Python

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.

12345678910111213141516171819202122232425262728
import 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()
question mark

Qual das afirmações a seguir sobre transformações de escala está correta?

Selecione a resposta correta

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 5

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Seção 2. Capítulo 5
some-alt