amChart Вычисляет координаты центра дуги на круговой диаграмме

#javascript #css #svg #charts #amcharts

Вопрос:

В настоящее время я использую этот плагин, и нахождение документов не содержит большой информации о получении центральной точки круговой диаграммы. После нескольких дней работы с документами я все еще не могу понять, как вычислить центральную точку (координаты) дуги.

Идея заключается в том, чтобы автоматически вычислить треугольник до центральной точки (координат) дуги, и где треугольник всегда указывает на центр круговой диаграммы.

Поскольку кодовый код не подлежит совместному использованию. Если вы хотите попробовать, вы можете вставить приведенный ниже код по ссылке CodePen. https://codepen.io/team/amcharts/pen/jRGYLv/?editors=0010

 /**
 * ---------------------------------------
 * This demo was created using amCharts 4.
 *
 * For more information visit:
 * https://www.amcharts.com/
 *
 * Documentation is available at:
 * https://www.amcharts.com/docs/v4/
 * ---------------------------------------
 */

// Create chart instance
var chart = am4core.create("chartdiv", am4charts.PieChart);
var triangle = chart.createChild(am4core.Triangle)
triangle.width = 20
triangle.height = 20
triangle.dx = 100
triangle.dy = -100
triangle.rotation = 45

// Add data
chart.data = [{
  "country": "Lithuania",
  "value": 501.9
}, {
  "country": "Czechia",
  "value": 301.9
}, {
  "country": "Ireland",
  "value": 201.1
}, {
  "country": "Germany",
  "value": 165.8
}, {
  "country": "Australia",
  "value": 139.9
}, {
  "country": "Austria",
  "value": 128.3
}];

// Add and configure Series
var pieSeries = chart.series.push(new am4charts.PieSeries());
pieSeries.dataFields.value = "value";
pieSeries.dataFields.category = "country";
pieSeries.labels.template.disabled = true;
pieSeries.ticks.template.disabled = true;

chart.legend = new am4charts.Legend();
chart.legend.position = "right";

chart.innerRadius = am4core.percent(60);

var label = pieSeries.createChild(am4core.Label);
label.text = "${values.value.sum}";
label.horizontalCenter = "middle";
label.verticalCenter = "middle";
label.fontSize = 40;
 

Любая помощь будет оценена по достоинству!