Треки
/
Go
Go
/
Вправи
/
Призма
Призма

Призма

Середня

Вступ

Уявімо себе дослідником у PRISM (Precariously Redirected Illumination Safety Management). Ми працюємо з системою точного лазерного калібрування, яка перевіряє експериментальні кристалічні призми. Ці кристали розробляють для оптичних компʼютерів наступного покоління, і кожен із них має унікальні заломлювальні властивості, зумовлені його молекулярною структурою. Лазерна система лабораторії може пошкодити кристали, якщо на них потрапить непередбачене опромінення, тож точне передбачення траєкторії має критичне значення.

Вказівки

Перш ніж активувати лазерний масив, потрібно передбачити точний порядок, у якому буде вражено кристали, визначений за ідентифікаторами їхніх зразків.

Приклад тестового випадку

Розгляньмо таку конфігурацію масиву кристалів:

{
  "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 }
  ]
}

Що відбувається

Лазер стартує з початку координат (0, 0) і випромінює промінь горизонтально праворуч під кутом 0°. Ось покроковий шлях променя:

Крок 1: Промінь рухається вздовж осі x (y = 0) і спершу натрапляє на Кристал №2 у позиції (10, 0). Цей кристал має кут заломлення 90°, тобто він заломлює промінь перпендикулярно до його поточного напрямку. Промінь, який спочатку рухався під кутом 0°, тепер перенаправлено на 90° (прямо вгору).

Крок 2: Тепер промінь рухається вертикально вгору від позиції (10, 0) і влучає в Кристал №1 у позиції (10, 10). Цей кристал має кут заломлення -90°, заломлюючи промінь на -90° відносно його поточного напрямку. Промінь рухався під кутом 90°, тож після заломлення він тепер під кутом 0° (90° + (-90°) = 0°) і знову рухається горизонтально праворуч.

Крок 3: Від позиції (10, 10) промінь рухається горизонтально і натрапляє на Кристал №3 у позиції (30, 10). Цей кристал заломлює промінь на 45°, змінюючи його напрямок на 45°. Промінь продовжує рух у порожній простір за межами масиву.

Графік, що показує шлях лазерного променя, заломленого через три призми.Графік, що показує шлях лазерного променя, заломленого через три призми.


Джерело

FraSangaПосилання відкривається в новому вікні або вкладці
Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
Go Exercism

Час розпочати Призма?

Зареєструйтеся на Exercism, щоб вивчати й опановувати Go, а також 34 концепції165 вправ та справжнє наставництво від людей, і все це безкоштовно.