Каждый кадр мы поворачиваем «глаз» на новый угол и сразу меряем расстояние. Угол шагает туда-сюда от 0° до 180° — получается «качание». Запоминаем точки в список:
car.radar.look(beam_angle) # повернуть датчик cm = car.radar.measure() # померить расстояние blips.append([beam_angle, cm]) # запомнить точку beam_angle += sweep_dir # шагнуть; на краях развернём
Угол говорит, куда смотрел датчик, расстояние — как далеко препятствие. Точку на экране находим тригонометрией (та самая из математики, синус и косинус):
import math x = CX + d * math.cos(math.radians(angle)) y = CY - d * math.sin(math.radians(angle))
Близкие препятствия красим красным, далёкие — зелёным. Запусти radar.py — можно одновременно рулить стрелками и смотреть радар.
car.radar.measure() выдаёт расстояния понарошку — впереди
«стена». Поэтому радар крутится и оживает, даже если машина не подключена. Удобно отлаживать
рисование.
Выбери ответ. Ошибёшься — 30 секунд на то, чтобы вернуться в урок и перечитать.
Как из угла и расстояния получают точку на экране радара?
Как датчик «качается»?