Matriz cartesiana

En este desafío, crea una matriz que simule cómo se coloca una serie de puntos en una parte del plano cartesiano.

Se te proporcionan dos objetos como parámetros:

  • dim contiene las dimensiones de la matriz regular que se va a construir:

    • La propiedad h es la altura, o el número total de filas.
    • La propiedad w es el ancho, o el número total de columnas.
  • cnt contiene las coordenadas del centro del plano cartesiano:

    • La propiedad r es la fila (indexada desde 0).
    • La propiedad c es la columna (indexada desde 0).

Debes implementar una función que devuelva una matriz (con el tamaño correspondiente a dim), donde cada "celda" sea un arreglo que contenga las coordenadas [x, y] relativas al punto central proporcionado (considerando así las celdas como puntos en el plano cartesiano).

Ejemplos

cartesianMatrix({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]]
]

cartesianMatrix({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]]
]

cartesianMatrix({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

  • Las coordenadas deben devolverse en el orden [x-axis, y-axis].
  • Las coordenadas del punto central (u origen) siempre son [0, 0]. El origen siempre estará incluido en la matriz.
  • Los puntos situados a la derecha o arriba del origen tienen valores positivos (p. ej., [1, 2] significa 1 celda a la derecha y 2 celdas hacia arriba del origen).
  • Los puntos situados a la izquierda o abajo del origen tienen valores negativos (p. ej., [-2, -1] significa 2 celdas hacia la izquierda y 1 celda hacia abajo del origen).