int isPowerOfTwo(unsigned int x)
{
return ((x != 0) && ((x & (~x + 1)) == x));
}
Это действительно быстро. Проверка всех 2 ^ 32 целых чисел занимает около 6 минут и 43 секунды.
Пути и списки точек могут быть указаны только в пользовательских единицах. Имея контейнер (например, svg или элемент символа), который определяет новую систему координат с помощью 'viewBox', можно повлиять на то, к чему разрешаются пользовательские единицы. Это по-прежнему не решает всех случаев.
Чтобы исправить еще несколько случаев, вы можете построить изображение, используя несколько форм, каждая с разными траекториями отсечения, чтобы вырезать нежелательные части. Вы можете взглянуть на Генератор скругленных углов SVG, чтобы увидеть пример такого подхода.
К сожалению, координаты пути могут быть выражены только с помощью одной единицы, координат окна просмотра.