Вы должны прояснить, какая симметрия разрешена. Центральная симметрия (поворот на 180 градусов)? Зеркальная симметрия над одной из осей? Вращение по какой-либо степени? В некоторых приложениях допускаются только повороты на 0,90,180,270 + зеркалирование ... Ответ будет разным в каждом случае.
Только для центральной симметрии, если вы предполагаете, что многоугольник хорошо представлен (т. Е. Нет дополнительных вершин на ребрах, а вершины содержатся в содержании с оператором вперед, тогда центрально-симметричный многоугольник будет иметь четное число 2 * N вершин , и вы можете сделать это:
Установить iter1 для ссылки на 0-ю вершину, а iter2 для ссылки на N-ю вершину.
Повторите N раз:
if (* iter1! = * Iter2) вернуть false;
вернуть true;