És investigador(a) no PRISM (Precariously Redirected Illumination Safety Management) e trabalhas com um sistema de calibração de laser de precisão que testa prismas de cristal experimentais. Estes cristais estão a ser desenvolvidos para computadores óticos de nova geração, e cada um tem propriedades de refração únicas, com base na sua estrutura molecular. O sistema de laser do laboratório pode danificar os cristais se estes receberem iluminação inesperada, por isso é fundamental prever o trajeto com precisão.
Antes de ativares o array de lasers, tens de prever a ordem exata em que os cristais serão atingidos, identificados pelos respetivos identificadores de amostra.
Considera esta configuração do array de cristais:
{
"start": { "x": 0, "y": 0, "angle": 0 },
"prisms": [
{ "id": 1, "x": 10, "y": 10, "angle": -90 },
{ "id": 2, "x": 10, "y": 0, "angle": 90 },
{ "id": 3, "x": 30, "y": 10, "angle": 45 },
{ "id": 4, "x": 20, "y": 0, "angle": 0 }
]
}
O laser parte da origem (0, 0) e dispara horizontalmente para a direita com um ângulo de 0°.
Aqui está o percurso do feixe, passo a passo:
Passo 1: O feixe percorre o eixo dos x (y = 0) e encontra primeiro o Cristal #2 na posição (10, 0).
Este cristal tem um ângulo de refração de 90°, o que significa que desvia o feixe perpendicularmente ao seu percurso atual.
O feixe, que inicialmente se deslocava a 0°, é agora redirecionado para 90° (diretamente para cima).
Passo 2: O feixe desloca-se agora verticalmente para cima a partir da posição (10, 0) e atinge o Cristal #1 na posição (10, 10).
Este cristal tem um ângulo de refração de -90°, desviando o feixe em -90° em relação à sua direção atual.
O feixe deslocava-se a 90°, por isso, após a refração, está agora a 0° (90° + (-90°) = 0°), deslocando-se novamente na horizontal para a direita.
Passo 3: A partir da posição (10, 10), o feixe desloca-se na horizontal e encontra o Cristal #3 na posição (30, 10).
Este cristal refrata o feixe em 45°, alterando a sua direção para 45°.
O feixe segue para o espaço vazio para além do array.
Inscreve-te no Exercism para aprenderes e dominares Go com 34 conceitos165 exercícios, e mentoria humana real, tudo grátis.