Contar a quantidade de triângulos em uma imagem é uma tarefa comumente usada em testes cerebrais. Você recebe uma imagem que contém formas que consistem em triângulos. Você deve encontrar todos os triângulos possíveis na figura.
Tarefa
Você recebe uma lista de linhas em um formato de sua escolha. Você deve então gerar uma lista de triângulos encontrados nesse
Entrada
Você recebe uma lista de linhas, cada uma dada por quatro coordenadas inteiras (por exemplo x1 y1 x2 y2
). Você pode escolher o formato de entrada, desde que esteja claramente documentado. Exemplos:
0 4 8 1
0 4 9 5
8 1 9 5
2 8 0 4
9 5 2 8
[[0, 4, 8, 1], [0, 4, 9, 5], [8, 1, 9, 5], [2, 8, 0, 4], [9, 5, 2, 8]]
Aqui está a mesma entrada que uma imagem:
Outro, com interseções (apenas em um formato para economizar espaço):
[[2, 1, 5, 0], [2, 1, 2, 7], [5, 0, 6, 6], [5, 0, 2, 7], [6, 6, 2, 1], [2, 7, 6, 6]]
Resultado
Você deve exibir uma lista de todos os triângulos, cada um dado por seis coordenadas de ponto flutuante (por exemplo x1 y1 x2 y2 x3 y3
), na imagem especificada pela entrada. Eles podem não ser números inteiros, pois as linhas podem se cruzar a qualquer momento. Você pode escolher o formato de saída, desde que esteja claramente documentado. Saídas de exemplo para as entradas de exemplo acima:
0 4 8 1 9 5
0 4 9 5 2 8
[[0, 4, 8, 3, 9, 5], [0, 4, 9, 5, 2, 8]]
[[2, 1, 5, 0, 2, 7], [2, 1, 5, 0, 6, 6], [5, 0, 6, 6, 2, 7], [2, 1, 6, 6, 2, 7], [2, 1, 5, 0, 3.674, 3.093], [5, 0, 6, 6, 3.674, 3.093], [6, 6, 2, 7, 3.674, 3.093], [2, 7, 2, 1, 3.674, 3.093]]
Você pode assumir que
não há casos de arestas em que uma linha cruze uma interseção, mas nenhuma linha, como
[[0, 9, 1, 8], [1, 8, 2, 9], [2, 9, 3, 8], [3, 8, 4, 9], [4, 9, 0, 9]]
não há ângulos acima de 179 graus, como
[[0, 0, 0, 1], [0, 1, 0, 2], [0, 2, 0, 0]]
Regras
- Você pode usar qualquer idioma que desejar.
- Nenhum recurso externo deve ser usado.
- Aplicam-se brechas padrão .
Pontuação
Isso é código-golfe , então a resposta mais curta em bytes vence.
[0,0],[1,0],[2,0],[1,2]
Um "quadrilátero" com um ângulo de 180 graus. Sem triângulos ou 1 triângulo?
[0,9],[1,8],[2,9],[3,8],[4,9]
é na verdade um W com uma linha desenhada no topo. Isso não é triângulos ou 2 triângulos?