galaxy, вот я думаю, что если не указывать аргументы, будет, возможно, менее читабельно. С другой стороны, все повторятся и подфункция и так видит эти аргументы
То что вы указали про sorted_args - это опечаточка, спасибо, что указали)
Если я вас правильно понял - то нужно создать отзеркаленную копию луча. Тоже задумывался насчет такой реализиции. Однако есть проблема, что отзеркаленный луч может выйти за пределы треугольника. Возможно, тогда необходимо будет создать циклом не по-координатно "треугольную арену", а по точкам. И обрезать луч если он выйдет за ее пределы.
Действительно, это, возможно, ключ к решению задачи, однако интересно по каким формулам можно сделать трассировку.