Один метод, который сразу приходит мне в голову, - это выстрелить лучом (т.е. измерить отрезок линии) из исходного положения в каждую вершину многоугольника.Сделайте сравнение на этих расстояниях, а затем, основываясь на этих сравнениях, сузьте его до минимально удаленного отрезка многоугольника.Вычислите перпендикулярное пересечение этой линии с началом координат, и вы получите минимально удаленную точку.Если сравнение вершин не ведет вас по правильному пути, просто стреляйте по линиям в случайных направлениях и просто останавливайтесь, когда вы довольны результатом.Не похоже, что вам нужна оптимальность.