2014-02-26 4 views
4

Предположим, что мы снабжены системой зеркал. Также мы имеем излучатель пучка и приемник луча. Затем мы должны найти направление, в котором излучатель должен излучать, чтобы луч доходил до приемника по кратчайшему пути. Как это можно эффективно осуществить?Алгоритм определения луча

the emitter and the receive in the system of mirrors

Картина просто эскиз к примеру.

+2

Действительно хороший вопрос, но недостаток ваших усилий портит его. Также угол будет зависеть от размеров зеркал и координат излучателя/приемника. Как они устанавливаются? –

+0

довольно сложно, так как в реальном мире есть бесконечное количество возможностей. – Christian

+1

Я не думаю, что алгоритм может быть достаточно общим для размещения всех возможных конфигураций в этом случае. –

ответ

4

Упрощенный алгоритм для прямоугольной сетки будет работать, вычисляя виртуальную позицию приемника в следующей сетке - точно так же, как если бы вы играли в пул и хотели сделать потрясающий выстрел в банк.

 +---------+----------+---------+----------+ 
    | O     |     | 
    |===>    |    <===| 
    |  Real   | Virtual copy | 
    |     |     | 
    A---------+----------+---------+----------a 

Здесь вы хотите снимать O А, так вы зеркало геометрии бассейна в вашем уме и стремиться к виртуальному карману «а». Этот сценарий можно повторить (бесконечно) путем зеркального отображения геометрии снова и снова как по горизонтали, так и по вертикали. В какой-то момент должна существовать виртуальная копия кармана/приемника a (n), которая ничем не блокируется.

+0

Есть ли способ разработать лучший способ зеркального отображения вещей, или вам просто нужно пробовать и ошибаться в вашем зеркалировании, пока вам не повезет? – Chris

+0

Хорошее решение, хотя я не думаю, что он гарантирует кратчайший путь ... –

+0

Кандидаты A, a, a ', a' 'должны сортироваться по эвклидову расстоянию. Первым кандидатом, который доступен, является кратчайший путь по определению (исключая рефракцию). Тот факт, что цель «А» на самом деле не является точкой, но область делает проблему более сложной. В этом случае, где width = 2 * height, есть несколько кандидатов, отличных от «a», которые должны быть опробованы в первую очередь - все они находятся ниже или выше «A». –

Смежные вопросы