Los círculos y cuadrados tienen un único punto central definido. Sin embargo, la noción del centro de un triángulo ha sido discutida durante mucho tiempo. Los antiguos griegos conocían cuatro centros diferentes:
- Incentro : la intersección de las bisectrices angulares del triángulo
- Centroide : la intersección de las líneas desde cada vértice del triángulo hasta la mitad de su lado opuesto
- Circuncentro : la intersección de las bisectrices perpendiculares de los lados.
- Ortocentro : la intersección de las altitudes del triángulo
Euler luego demostró que el centroide, el circuncentro y el ortocentro son colineales en cualquier triángulo. La línea en la que se encuentran estos tres puntos en un triángulo se llama Línea de Euler . Se define para cada triángulo, excepto un triángulo equilátero, donde todos los puntos coinciden.
Su desafío es crear el programa o función más corto que, cuando se le dan dos entradas, emite un centro específico o la línea de Euler del triángulo. El primero especifica las coordenadas de cada vértice de un triángulo. El segundo es un número entero de 1 a 5, que determina qué generar.
1 - Incenter
2 - Centroid
3 - Circumcenter
4 - Orthocenter
5 - Equation of Euler Line
(if the Euler Line is vertical, output the `x` value of the line
(e.g. output `5` if the equation of the line is `x = 5`))
Puede suponer que los vértices dados nunca serán colineales, y que siempre serán coordenadas enteras (esto también excluye la posibilidad de tener un triángulo equilátero como entrada, según el comentario de @ R.Kap ).
La matriz de entrada debe ser una matriz anidada válida en su idioma, y la entrada debe estar en cualquier formato razonable. Cualquier valor flotante debe mostrarse con al menos 3 decimales, pero no menos. Un punto de salida debe ser una matriz válida en su idioma, que coincida con el formato de entrada.
Casos de prueba:
Input: [(-2, 0), (1, 0), (0, 1)] 1
Output: (-0.089, 0.451)
Input: [(-2, 0), (1, 0), (0, 1)] 2
Output: (-0.333, 0.333)
Input: [(-2, 0), (1, 0), (0, 1)] 3
Output: (-0.5, -0.5)
Input: [(-2, 0), (1, 0), (0, 1)] 4
Output: (0, 2)
Input: [(-2, 0), (1, 0), (0, 1)] 5
Output: 5x + 2
Aclaración: La entrada puede ser desde stdin, espacio o nueva línea separada, o como argumentos para una función. La salida, sin embargo, debe escribirse en stdout.
y=f(x)
.
(if the triangle is equilateral, output the point at which the centers meet)
ya que no es posible crear un triángulo equilátero en el plano de coordenadas utilizando solo coordenadas enteras.