Skip to content

Estudo Dirigido 02


Atividade:

Para plotar os exercícios de transformações geométricas, a biblioteca Matplotlib é ideal, pois é uma das mais populares para visualização de dados e gráficos em Python. A Matplotlib é adequada para criar gráficos de 2D, como pontos, linhas e formas geométricas. Aqui estão os passos gerais e uma explicação de como usar essa biblioteca para plotar as transformações geométricas:

Exercício 1: Translação Simples

Dado o ponto ( P(2, 3) ), aplique a translação com vetor ( (4, -2) ).

  • Perguntas: Qual é o novo ponto ( P' )? Quais coordenadas foram alteradas?

Exercício 2: Escala Uniforme

Considere um triângulo com vértices ( A(1, 1), B(3, 1) ) e ( C(2, 4) ). Aplique uma escala uniforme de fator 2.

  • Perguntas: Quais são as novas coordenadas dos vértices após a transformação? O que acontece com o tamanho do triângulo?

Exercício 3: Escala Não Uniforme

Aplique uma escala não uniforme no triângulo do Exercício 2, com fator de 2 no eixo (x) e fator de 0,5 no eixo (y).

  • Pergunta: Quais são as novas coordenadas dos vértices?

Exercício 4: Rotação em Torno da Origem

Rotacione o ponto ( P(1, 0) ) em 90° no sentido anti-horário em torno da origem.

  • Pergunta: Qual é a nova posição do ponto ( P' ) após a rotação?

Exercício 5: Rotação de um Polígono

Um quadrado tem vértices ( A(1, 1), B(1, 4), C(4, 4), D(4, 1) ). Aplique uma rotação de 45° no sentido horário.

  • Pergunta: Quais são as novas coordenadas dos vértices?

Exercício 6: Reflexão Simples

Dado o ponto ( P(2, 5) ), aplique uma reflexão em relação ao eixo (y).

  • Pergunta: Qual é a nova posição do ponto ( P' )?

Exercício 7: Reflexão de um Triângulo

Considere um triângulo com vértices ( A(2, 3), B(4, 3) ) e ( C(3, 5) ). Aplique uma reflexão em relação ao eixo (x).

  • Pergunta: Quais são as novas coordenadas dos vértices após a transformação?

Exercício 8: Cisalhamento Horizontal

Dado o ponto ( P(2, 3) ), aplique um cisalhamento horizontal com ( k = 2 ).

  • Pergunta: Qual é a nova posição do ponto ( P' )?

Exercício 9: Composição de Transformações

Dado o ponto ( P(3, 2) ), aplique as seguintes transformações consecutivas:

1. Uma translação com vetor ( (1, -1) ).

2. Uma rotação de 90° no sentido anti-horário.

3. Uma escala uniforme com fator 2.

  • Pergunta: Qual é a nova posição do ponto ( P' ) após todas as transformações?

Exercício 10: Combinação de Transformações em uma Figura

Dado um retângulo com vértices ( A(1, 1), B(5, 1), C(5, 3), D(1, 3) ), aplique as seguintes transformações em sequência:

1. Translação com vetor ( (-2, 3) ).

2. Escala não uniforme com fatores ( 1.5 ) no eixo (x) e (0.5) no eixo (y).

3. Reflexão em relação ao eixo (y).

  • Pergunta: Quais são as novas coordenadas dos vértices após as três transformações?

Instalação e Instruções para o desenvolvimento

Se você ainda não tiver o Matplotlib instalado, pode instalar com o seguinte comando:

pip install matplotlib

Estrutura Geral para Plotar Transformações

Para cada exercício, o processo de plotagem envolve:

1. Definir os pontos de uma forma geométrica (triângulo, quadrado, etc.).

2. Aplicar a transformação (translação, rotação, escala, etc.).

3. Plotar o objeto antes e depois da transformação.

Exemplo de Código Base com Matplotlib

Aqui está uma estrutura de código que pode ser adaptada para cada um dos exercícios:

import numpy as np
import matplotlib.pyplot as plt

def plot_shapes(original_shape, transformed_shape, title):
    plt.figure()
    plt.plot(*zip(*original_shape, original_shape[0]), label="Original")
    plt.plot(*zip(*transformed_shape, transformed_shape[0]), label="Transformado", linestyle="--")
    plt.title(title)
    plt.legend()
    plt.grid(True)
    plt.show()

# Exemplo de quadrado
square = np.array([[1, 1], [1, 4], [4, 4], [4, 1]])

# Exemplo de transformação: translação
transformed_square = square + [2, -1]

# Plotar o quadrado original e transformado
plot_shapes(square, transformed_square, "Translação de um Quadrado")

Aplicação para Cada Exercício:

1. Exercício de Translação: - Use a função de translação e aplique aos pontos do objeto. - Plotar o objeto original e o transformado.

2. Exercício de Escala (Uniforme e Não Uniforme): - Escale as coordenadas dos vértices de acordo com o fator de escala. - Plotar o objeto antes e depois da transformação.

3. Exercício de Rotação: - Aplique uma rotação de acordo com a matriz de rotação. - Plotar a figura rotacionada em relação à original.

4. Exercício de Reflexão: - Aplique a matriz de reflexão em relação ao eixo (x) ou (y). - Plotar o objeto antes e depois da reflexão.

5. Exercício de Cisalhamento: - Aplique a matriz de cisalhamento aos vértices. - Plotar o objeto antes e depois da transformação.

6. Composição de Transformações: - Aplique uma sequência de transformações (translação, rotação e escala) e observe como a figura muda. - Plotar cada passo da transformação para visualizar cada alteração.

Ajustes Específicos para Cada Exercício:

  • Exercícios de Polígonos (quadrado, triângulo): Definir as coordenadas iniciais dos vértices do polígono.
  • Exercícios de Ponto Simples: Usar a função plt.scatter() para plotar um ponto antes e depois da transformação.

Exemplo Completo (Escala e Translação):

import numpy as np
import matplotlib.pyplot as plt

# Função para translação
def translate(points, translation):
    return points + translation

# Função para escala
def scale(points, factor):
    return points * factor

# Exemplo: Triângulo
triangle = np.array([[1, 1], [3, 1], [2, 4]])

# Aplicar translação e escala
translated_triangle = translate(triangle, [2, 1])
scaled_triangle = scale(triangle, 1.5)

# Plotar o triângulo original, transladado e escalado
plt.figure()
plt.plot(*zip(*triangle, triangle[0]), label="Original")
plt.plot(*zip(*translated_triangle, translated_triangle[0]), label="Transladado", linestyle="--")
plt.plot(*zip(*scaled_triangle, scaled_triangle[0]), label="Escalado", linestyle="-.")
plt.title("Transformações em um Triângulo")
plt.legend()
plt.grid(True)
plt.show()