@FlashDok

Как сделать расчёт пройденного расстояния лучом?

Например дано прямоугольник с шириной 100 и высотой 70.

658a7a31018af074956658.png

Можно представить как координатную плоскость для удобства где левый верхний угол это координаты 0;0.
Нужно вывести формулу для расчёта пройденного расстояние "световым" лучом при угле падения X ( на картинке 65 ) пока луч не упрется в правую стенку.

Можно ли вывести формулу где грубо говоря подставляешь ширину, высоту, и угол решением будет длина луча.
И будет ли "эта" формула например работать для отправной точки луча не 0;0 а 10;20 например.
  • Вопрос задан
  • 44 просмотра
Решения вопроса 1
wataru
@wataru
Разработчик на С++, экс-олимпиадник.
Формула: W/sin(a). Ну, или косинус, в зависимости от того, что вы за угол задаете. W - ширина прямоугольника.

Вывести формулу просто со стандартным трюком: вместо отражения луча, отражайте зеркальную комнату, а луч пусть идет прямо. Тогда луч просто пройдет вдоль кучи вертикально сложенных одинаковых прямоугольников.

Формула осмысленна: если нет отражений, она очевидна. Чем вертикальнее луч, тем больше ответ.

Формула меняется для любой отправной точки: надо лишь опять нарисовать решетку из прямоугольников. Видимо, там будет не W, а оставшаяся ширина от начала до правой стенки.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы