Подтвердить что ты не робот

Можно ли применить обрезку в SVG без указания идентификатора клипа?

В моей разметке у меня есть такой кусок:

<svg width="0" height="0" style="display:none" id="dummy-wedge">
 <g class="dummy" transform="translate(100, 100)">
    <defs>
      <clipPath id="clip1">
        <polygon id="clip1Shape" points="-100,-100 0,-100 0,0 -100,-20" />        
      </clipPath>
    </defs>
    <circle id="" cx="0" cy="0" r="52" fill-opacity="0" 
                  stroke="#ffffff" stroke-opacity="0.6" stroke-width="50" 
                  pointer-events="visiblePainted" clip-path="url(#clip1)" />
  </g>
</svg>

То, что я хочу сделать, это захватить этот кусок и клонировать его в другой корневой элемент svg, чтобы создать кучу клиньев, каждый из которых имеет другую позицию и сегмент клипа. Эта часть классная, но разочарование состоит в том, что каждому клонированному элементу ClipPath необходимо будет получить новый идентификатор, который затем должен быть вставлен в атрибут клипа для соответствующего элемента.

Я знаю, что если бы все дуги были одинаковой длины, у меня мог бы быть общий клип и использовать поворотные преобразования, но они не обязательно одинаковой длины.

Можно ли объявить полигон клипа, используя топологическую связь, а не явно называя его? В качестве альтернативы, есть ли лучший способ определить такую ​​дугу, как это за пределами использования путей?

Спасибо.

4b9b3361

Ответ 1

Зачем вам нужно использовать обрезку? Не могли бы вы просто использовать элементы пути с различными сегментами дуги в них?

Там нет декларативного пути (пока), чтобы получить поведение, за которым вы после этого, но это то, что предназначено для описания параметров SVG Parameters. Посмотрите примеры и реализацию script для обработки содержимого (в качестве способа поддержки текущих браузеров). ПРИМЕЧАНИЕ: это еще рабочий проект и может быть изменен.