Matriz cartesiana
Neste desafio, crie uma matriz que simule como uma série de pontos é posicionada em uma parte do plano cartesiano.
São fornecidos dois objetos como parâmetros:
dimcontém as dimensões da matriz regular a ser criada:- A propriedade
hé a altura, ou o número total de linhas. - A propriedade
wé a largura, ou o número total de colunas.
- A propriedade
cntcontém as coordenadas do centro do plano cartesiano:- A propriedade
ré a linha (indexada a partir de 0). - A propriedade
cé a coluna (indexada a partir de 0).
- A propriedade
Você deve implementar uma função que retorne uma matriz (com o tamanho definido por dim), com cada "célula" sendo um array que contém as coordenadas [x, y] relativas ao ponto central fornecido (considerando, assim, as células como pontos no plano cartesiano).
Exemplos
cartesian_matrix({"h": 3, "w": 4}, {"r": 1, "c": 1}) ➞ [
[[-1, 1], [0, 1], [1, 1], [2, 1]],
[[-1, 0], [0, 0], [1, 0], [2, 0]],
[[-1, -1], [0, -1], [1, -1], [2, -1]]
]
cartesian_matrix({"h": 4, "w": 3}, {"r": 0, "c": 1}) ➞ [
[[-1, 0], [0, 0], [1, 0]],
[[-1, -1], [0, -1], [1, -1]],
[[-1, -2], [0, -2], [1, -2]],
[[-1, -3], [0, -3], [1, -3]]
]
cartesian_matrix({"h": 2, "w": 4}, {"r": 0, "c": 0}) ➞ [
[[0, 0], [1, 0], [2, 0], [3, 0]],
[[0, -1], [1, -1], [2, -1], [3, -1]]
]Notas
- As coordenadas devem ser retornadas na ordem
[x-axis, y-axis]. - As coordenadas do ponto central (ou origem) são sempre
[0, 0]. A origem sempre estará incluída na matriz. - Os pontos posicionados à direita ou acima da origem têm valores positivos (ou seja,
[1, 2]significa1célula à direita e2células acima da origem). - Os pontos posicionados à esquerda ou abaixo da origem têm valores negativos (ou seja,
[-2, -1]significa2células à esquerda e1célula para baixo da origem).