Да, можно существенно изменить синтаксис, и даже выйти "из ада круглых скобок". Для этого необходимо будет определить новый синтаксис читателя. Изучите макросы читателя.
я действительно подозреваю однако, что для достижения уровня экспертного знания Lisp для программирования таких макросов необходимо будет погрузить себя в язык до такой степени, что Вы больше не будете рассматривать parenthese "ад". Т.е. к тому времени, когда Вы знаете, как избежать их, Вы приедете для принятия их как хорошую вещь.
Это 3D-коробка или 2D-прямоугольник? В любом случае вам лучше всего получить расстояние для точечной линии (для 2D) или для точечной плоскости (3D) для каждой стороны, а затем выбрать минимальное значение. < / strike>
Редактировать: есть намного лучший способ, описанный здесь (последний пост). Он включает в себя преобразование координат вашей точки в пространство блока, а затем «насыщение» координат размером блока, чтобы найти точку на блоке, ближайшем к точке. Я не пробовал, но мне это кажется правильным.