Cuadrado en el plano cartesiano
Defina la función cuadrado-en-el-plano-cartesiano
tal que dado el
baricentro de un cuadrado
y la mitad de uno de sus lados se obtengan los 4 puntos cartesianos necesarios para formar un cuadrado.
Notas:
- El baricentro se representa por el mapa
{:x x :y y}
dondex
ey
son números enteros positivos y/o negativos, incluyendo el 0. - La mitad de uno de los lados del cuadrado es un número entero positivo mayor o igual a 1.
- Los 4 puntos cartesianos como resultado serán obtenidos en un conjunto:
#{{:x x :y y} {:x x :y y} ...}
- El baricentro se representa por el mapa
Ejemplos:
Ejemplo 01
- Baricentro:
(3, 3)
- Mitad del lado:
5
- Longitud del lado:
10
Ejemplo 02
- Baricentro:
(-5, -3)
- Mitad del lado:
8
- Longitud del lado:
16
Pruebas
;; Para el Ejemplo 01
=> (cuadrado-en-el-plano-cartesiano {:x 3 :y 3} 5)
#{{:x -2 :y 8} {:x 8 :y 8} {:x 8 :y -2} {:x -2 :y -2}}
;; Para el Ejemplo 02
=> (cuadrado-en-el-plano-cartesiano {:x -5 :y -3} 8)
#{{:x -13 :y 5} {:x 3 :y 5} {:x 3 :y -11} {:x -13 :y -11}}
;; Cuando no sea posible obtener un cuadrado se regresa el punto (0,0)
=> (cuadrado-en-el-plano-cartesiano {:x 2 :y -9} 0)
=> (cuadrado-en-el-plano-cartesiano {:x 6.3 :y 4.2} 5.1)
=> (cuadrado-en-el-plano-cartesiano {:x -5 :y -3} -8)
=> (cuadrado-en-el-plano-cartesiano {:x true :y "Hola mundo!"} [1 2 3])
=> (cuadrado-en-el-plano-cartesiano {:x [6 7] :y #{}} \@)
#{{:x 0 :y 0}}
Notas
- No puede hacerse uso de
if
s.