Как сделать такие динамические и кликабельные сектора в круге?

Есть сайт на vue. И там такой круг:введите сюда описание изображения

Кол-во частей в круге может быть от 2 до 12. Все они кликабельны. Я дошёл до такого этапа: введите сюда описание изображения

Я не могу понять как менять их размер в зависимости от их кол-ва. Пробовал делать через mask и stroke-dasharray, но тогда они не кликабельны. Сейчас пытаюсь делать через path, но не выходит нормально менять ширину сегментов. Вот часть кода:

<template lang="pug">
#dd
    loading(v-if="!desc")
    svg(viewBox="0 0 856 856").person-description
        g._category(v-for="category, categoryIndex in mainCategories" 
        :key="categoryIndex" 
        :style="{transform: rotate(categoryIndex,mainCategories)}" 
        :data-category-index="categoryIndex" 
        :data-category-name="category") 
            transition(name="showDescItem" appear)
                path(:d="M427,427l-1-222c19.5,0.7,47.5,3.9,78.9,15.6c25.5,9.5,45.3,21.6,59.4,31.7C518.5,310.6,472.8,368.8,427,427z ":class="{'person-description__sub-category_without-delay': delay}")._path 
<script> 
   data: () => ({
        mainCategories: {
            1: 'Власть',
            2: 'Отношения',
            3: 'Духовный рост',
            4: 'Гармония',
            5: 'Семья',
            6: 'Досуг и отдых',
            7: 'Здоровье',
            8: 'Карьера',
            9: 'Семья',
        },
    methods: {
         rotate(id,categories) {
            let length = Object.keys(categories).length
            return ('rotateZ(' +id * (360 / length) + 'deg)');
        },

Подскажите что делать, пожалуйста.


Ответы (0 шт):