--- title: Circles of given radius through two points id: 5951815dd895584b06884620 challengeType: 5 videoUrl: '' localeTitle: Círculos de radio dado a través de dos puntos. --- ## Description

Dados dos puntos en un plano y un radio, generalmente se pueden dibujar dos círculos de un radio dado a través de los puntos.

Excepciones: Un radio de cero debe tratarse como si nunca describiera círculos (excepto en el caso de que los puntos coincidan). Si los puntos son coincidentes, se puede dibujar un número infinito de círculos con el punto en su circunferencia, a menos que el radio también sea igual a cero, lo que luego colapsa los círculos en un punto. Si los puntos forman un diámetro, devuelva un solo círculo. Si los puntos están demasiado separados, no se pueden dibujar círculos. Tarea: implemente una función que tome dos puntos y un radio y devuelva los dos círculos a través de esos puntos. Para cada círculo resultante, proporcione las coordenadas para el centro de cada círculo redondeado a cuatro dígitos decimales. Devuelve cada coordenada como una matriz y las coordenadas como una matriz de matrices. Para los casos de borde, devuelva lo siguiente: Si los puntos están en el diámetro, devuelva un punto. Sin embargo, si el radio también es cero, devuelve "Radius Zero" . Si los puntos coinciden, devuelva "Coincident point. Infinite solutions" . Si los puntos están más separados que el diámetro, regrese "No intersection. Points further apart than circle diameter" puntos están más separados que el diámetro "No intersection. Points further apart than circle diameter" . Entradas de muestra:
 p1 p2 r
0.1234, 0.9876 0.8765, 0.2345 2.0
0.0000, 2.0000 0.0000, 0.0000 1.0
0.1234, 0.9876 0.1234, 0.9876 2.0
0.1234, 0.9876 0.8765, 0.2345 0.5
0.1234, 0.9876 0.1234, 0.9876 0.0
Ref: encontrar el centro de un círculo a partir de 2 puntos y el radio en el foro de Matemáticas @ Drexel
## Instructions
## Tests
```yml tests: - text: getCircles es una función. testString: 'assert(typeof getCircles === "function", "getCircles is a function.");' - text: 'getCircles([0.1234, 0.9876], [0.8765, 0.2345], 2.0) debe devolver [[1.8631, 1.9742], [-0.8632, -0.7521]] .' testString: 'assert.deepEqual(getCircles(...testCases[0]), answers[0], "getCircles([0.1234, 0.9876], [0.8765, 0.2345], 2.0) should return [[1.8631, 1.9742], [-0.8632, -0.7521]].");' - text: 'getCircles([0.0000, 2.0000], [0.0000, 0.0000], 1.0) debe devolver [0, 1]' testString: 'assert.deepEqual(getCircles(...testCases[1]), answers[1], "getCircles([0.0000, 2.0000], [0.0000, 0.0000], 1.0) should return [0, 1]");' - text: 'getCircles([0.1234, 0.9876], [0.1234, 0.9876], 2.0) debe devolver el Coincident point. Infinite solutions' testString: 'assert.deepEqual(getCircles(...testCases[2]), answers[2], "getCircles([0.1234, 0.9876], [0.1234, 0.9876], 2.0) should return Coincident point. Infinite solutions");' - text: 'getCircles([0.1234, 0.9876], [0.8765, 0.2345], 0.5) debe devolver No intersection. Points further apart than circle diameter' testString: 'assert.deepEqual(getCircles(...testCases[3]), answers[3], "getCircles([0.1234, 0.9876], [0.8765, 0.2345], 0.5) should return No intersection. Points further apart than circle diameter");' - text: 'getCircles([0.1234, 0.9876], [0.1234, 0.9876], 0.0) debe devolver Radius Zero' testString: 'assert.deepEqual(getCircles(...testCases[4]), answers[4], "getCircles([0.1234, 0.9876], [0.1234, 0.9876], 0.0) should return Radius Zero");' ```
## Challenge Seed
```js function getCircles (...args) { // Good luck! return true; } ```
### After Test
```js console.info('after the test'); ```
## Solution
```js // solution required ```