1.17.9 EP01_09 🏁 Padrão de Tabuleiro: Matriz de Xadrez
Nesta atividade, você deve escrever um programa que gere uma imagem sintética no padrão de um tabuleiro de xadrez.
Leia dois inteiros L (linhas) e C (colunas).
Gere uma matriz onde os valores alternam entre 0 (preto) e 1 (branco).
A lógica de preenchimento deve seguir a regra da paridade:
O elemento na posição \((0,0)\) é sempre 0.
Um pixel na posição \((i, j)\) será 1 se a soma dos índices \((i + j)\) for ímpar.
Um pixel na posição \((i, j)\) será 0 se a soma dos índices \((i + j)\) for par.
📌 Importante:
As cores devem alternar corretamente tanto horizontalmente quanto verticalmente.
A saída deve ser a matriz impressa linha por linha, com os elementos separados por um espaço.
Ver um simulador interativo para esta questão na Figura 1.19 (ajuste as dimensões para visualizar a construção da malha e a saída textual correspondente).
1.17.9.1 🧠 Padrões Sintéticos
Criar padrões geométricos é um exercício fundamental para dominar a lógica de índices em matrizes. Em Processamento Digital de Imagens, o padrão de xadrez não é apenas estético; ele é amplamente utilizado para:
Aplicação
Utilidade
Calibração de Câmera
Estimar parâmetros intrínsecos e extrínsecos da lente.
Correção de Distorção
Identificar e corrigir o efeito de “barril” ou “almofada” em lentes grande-angulares.
Mapeamento 3D
Projetar padrões conhecidos para reconstruir superfícies em sistemas de luz estruturada.
1.17.9.2 📋 Tarefa (especificação para VPL)
Entrada:
Uma linha contendo o inteiro L (linhas).
Uma linha contendo o inteiro C (colunas).
Saída:
A matriz de xadrez com L linhas e C colunas, impressa com espaços entre os elementos.
1.17.9.3 📌 Exemplos
Entrada
Saída
Observação
3
4
0 1 0 1
1 0 1 0
0 1 0 1
Note que cada linha começa com o inverso da anterior
Altere o número de linhas (L) e colunas (C) para observar como a alternância de paridade das coordenadas da grade constrói a matriz binária de xadrez.
×
GRADE GRÁFICA
SAÍDA ESPERADA (VALORES)
Figura 1.19: Simulador EP01_09: Gerador de Padrão Xadrez (Lógica de Paridade (i + j) % 2)
%%writefile EP01_09.cpp// sua solução
Overwriting EP01_09.cpp
TestSuite("EP01_09.cpp").run()
✔️ EP01_09.cases já existe em casos/
📋 7 caso(s) carregado(s) de casos/EP01_09.cases
🔍 Testando C++: EP01_09.cpp
⚠️ EP01_09.cpp: Arquivo sem conteúdo (menos de 3 linhas). Testes ignorados.