I cerchi e i quadrati hanno un unico, preciso punto centrale. Tuttavia, la nozione del centro di un triangolo è stata a lungo discussa. Quattro diversi centri erano noti agli antichi greci:
- Incentore : l'intersezione delle bisettrici angolari del triangolo
- Centroide : l'intersezione delle linee da ciascun vertice del triangolo al centro del lato opposto
- Circoncentro : l'intersezione delle bisettrici perpendicolari dei lati
- Orthocenter : l'intersezione delle altitudini del triangolo
Eulero in seguito ha dimostrato che il centroide, il circoncenter e l'ortocentro sono collineari in qualsiasi triangolo. La linea su cui si trovano questi tre punti in un triangolo è chiamata Linea di Eulero . È definito per ogni triangolo tranne un triangolo equilatero, in cui tutti i punti coincidono.
La tua sfida è quella di creare il programma o la funzione più breve che, quando vengono dati due ingressi, genera un centro specifico o la Linea di Eulero del triangolo. Il primo specifica le coordinate di ciascun vertice di un triangolo. Il secondo è un numero intero compreso tra 1 e 5, che determina cosa emettere.
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`))
Puoi presumere che i vertici dati non saranno mai collineari e che saranno sempre coordinate intere (questo esclude anche la possibilità di avere un triangolo equilatero come input, come da commento di @ R.Kap ).
L'array di input deve essere un array nidificato valido nella tua lingua e l'input deve essere in qualsiasi formato ragionevole. Tutti i valori float devono essere visualizzati con almeno 3 cifre decimali, ma non meno. Un punto emesso dovrebbe essere un array valido nella tua lingua, corrispondente al formato di input.
Casi test:
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
Chiarimento: l'input può provenire da stdin, separato da spazio o da nuova riga, oppure come argomento di una funzione. L'output, tuttavia, deve essere scritto su stdout.
y=f(x).
(if the triangle is equilateral, output the point at which the centers meet)come è non possibile creare un triangolo equilatero sul piano delle coordinate usando solo numeri interi coordinate.