TwiddleLab / Математика / Тригонометрия и волны
Поворот с тригонометрией
Что ты узнаешь
- Поворот на θ против часовой стрелки это матрица R(θ) = [cos θ, -sin θ; sin θ, cos θ].
- Её столбцы это то, куда попадают î и ĵ: (cos θ, sin θ) и (-sin θ, cos θ).
- Игра поворачивает корабль, пропуская каждую вершину через одну и ту же матрицу, поэтому форма никогда не сплющивается.
Как идёт урок
Твоя игра поворачивает космический корабль на любой угол 60 раз в секунду.
Какие четыре числа это делают? Сначала: поверни корабль на 90°. Куда попадёт его нос?
Крути ручку и смотри, как поворачивается вся сетка.
Карточка показывает матрицу поворота. Три цели: 90°, 180°, 30°.
Тяни î по окружности.
ĵ остаётся на четверть оборота впереди. Смотри на два столбца матрицы.
Это матрица поворота.
Поворот на θ отправляет î в (cos θ, sin θ), а ĵ в (-sin θ, cos θ), на четверть оборота впереди.
Поставь их столбцами: R(θ) = [cos θ, -sin θ; sin θ, cos θ]. Любая точка (x, y) идёт в x × столбец 1 + y × столбец 2.
Построй матрицу для поворота на 270°.
Заполни четыре ячейки числами 0, 1 или -1, пока корабль не встанет на пунктирный контур.
R(270°) = [cos 270°, -sin 270°; sin 270°, cos 270°] = [0, 1; -1, 0].
Поверни точку (3, 1) на 90°.
Нажми на точку сетки, куда она попадёт.
R(90°) = [0, -1; 1, 0], поэтому (3, 1) идёт в (0 × 3 - 1 × 1, 1 × 3 + 0 × 1) = (-1, 3).
Этот игровой код сплющивает корабль.
Один знак неверный. Запусти, переверни неверный знак, запусти снова.
Строка 1 матрицы R это (cos a, -sin a), поэтому x2 = x cos a - y sin a. С плюсом при 45° обе строки одинаковы, и корабль схлопывается в линию.
Игра: турель.
Три камня. Поворачивай ствол, пока он не нацелится на камень, потом «Огонь».
R(θ) = [cos θ, -sin θ; sin θ, cos θ].
Нарисуй свой корабль из клеток, потом поверни его матрицей.
Предыдущий урок: Теорема косинусов · Следующий урок: Проект: создай ноту синтезатора · Часть курса: Тригонометрия и волны
Уроки интерактивные и работают на JavaScript. Включи его, чтобы играть.