Dados 4 puntos en los planos 2D A, B, C, D, calcule el área de la región de intersección de los triángulos OABy OCD, donde Oestá el centro del plano, teniendo coordenadas (0, 0).
Los algoritmos que se ejecutan en una complejidad de tiempo constante (en términos de operaciones aritméticas) son alentados, pero no forzados.
Reglas
- Cada punto se representa como dos números reales, denota sus coordenadas X e Y.
- Opcionalmente, si su lenguaje de programación (o alguna biblioteca de su lenguaje de programación) tiene un
Pointtipo incorporado o equivalente, se le permite tomar elPointobjeto como entrada.
- Opcionalmente, si su lenguaje de programación (o alguna biblioteca de su lenguaje de programación) tiene un
- La entrada se da como 4 puntos, en los formatos, que incluyen pero no se limitan a:
- Una lista de 8 coordenadas.
- Una lista de 4 puntos, cada punto se puede representar en cualquier formato conveniente.
- Dos listas de 2 puntos.
- etc.
- No puede asumir un orden particular de los puntos (orden en sentido antihorario o en sentido horario)
- No puede suponer que el punto
Ose pasa como entrada. En otras palabras, el programa no debe tomar y usar entradas extrañas. - No puedes asumir que todos los puntos son diferentes. En otras palabras, los triángulos pueden estar degenerados. También debe manejar ese caso (ver casos de prueba a continuación)
- La diferencia absoluta o relativa debe ser menor que para los casos de prueba de muestra a continuación.
10-3
Criterios ganadores
Este es el código de golf , ¡la respuesta más corta en bytes gana!
Muestra de casos de prueba
Ax Ay Bx By Cx Cy Dx Dy area
5 1 1 3 -1 0 0 -1 0
5 1 1 3 -1 0 0 0 0
5 1 1 3 0 0 0 0 0
5 1 1 3 3 4 4 -3 4.50418
5 1 1 3 1 2 2 1 1.5
5 1 1 3 -2 5 4 -2 1.74829
5 1 1 3 -2 5 5 4 2.96154
5 1 1 3 3 5 5 4 1.88462
5 1 1 3 3 5 3 1 3.92308
5 1 1 3 3 5 4 -1 5.26619
5 1 1 3 5 1 4 -1 0
5 1 1 3 5 1 1 3 7
1 3 1 3 5 1 1 3 0
1 3 1 3 1 3 1 3 0
4 8 4 -1 -2 6 -2 -3 0
1.2 3.4 -0.3 4.2 5 7.6 -1.1 2.4 2.6210759326188535
3.1 0.6 0.1 7.2 5.2 0.7 0.9 8 9.018496993987977
Si alguien quiere, aquí están las salidas para el primer grupo de casos de prueba en forma exacta:
0
0
0
46375/10296
3/2
1792/1025
77/26
49/26
51/13
23345/4433
0
7
0
0
0
Imagen de ilustración para el caso de prueba 5 1 1 3 3 4 4 -3(el área del cuadrilátero verde es el resultado esperado):
[
]
