javascript - Highcharts - 旋转饼图,将点击的部分对齐到固定点 (180°)

标签 javascript jquery html css highcharts

我正在处理关于在用户单击饼图的一部分后旋转使用 highcharts.js 创建的饼图的可能性的请求。 给定一个 180 度 Angular 的固定点,饼图应自行对齐,将单击的部分指向该固定点,在我的例子中用三 Angular 形表示。因此,每次用户单击一个部分时,固定三 Angular 形都会指向它,同时饼图会旋转。 我已经设法捕捉到点击事件并像这样更改 startAngle 选项:

// Rotate chart
donutChart.series[0].update({
    startAngle: convertAngle("rads", this.angle) // gives the point angle in rads
});

这显然是错误的,但我想在 point-events-click 事件中做类似的事情。

为了实现这一目标,您有什么建议吗(如果可能的话)?

谢谢。

最佳答案

很酷的问题。

您的旋转算法有点缺陷。举例来说,您希望 startAngle 旋转您的 3rd 切片以从 0 度开始(图表顶部)。这将是:

-(slice1ArcDegrees + slice2ArcDegrees)

可以通过以下方式找到 ArcDegrees:

 (percentage/100.0 * 360.0)

将其放在点点击处理程序中:

  var points = this.series.points;
  var startAngle = 0;
  for (var i = 0; i < points.length; i++){
    var p = points[i];
    if (p == this)
    {
      break;
    }
    startAngle += (p.percentage/100.0 * 360.0);
  }
  this.series.update({
    startAngle: -startAngle + 180 - ((this.percentage/100.0 * 360.0)/2) // center at 180
  });

这是一个 example .

关于javascript - Highcharts - 旋转饼图,将点击的部分对齐到固定点 (180°),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26932389/

相关文章:

javascript - 防止输入负数 Mongoose Schema

javascript - javascript 新手,为什么我的按钮不起作用?

javascript - 创建一个常量而不是变量来移动位置

jquery - 在 jQuery 中循环图像 - 随机化它?

jQuery Droppable Hover 和 Active Class 优先?

html - 在链接之间放置空格

javascript - 如何检测图像是否可见?

javascript - toBe(true) vs toBeTruthy() vs toBeTrue()

javascript - 在 Jquery 中滚动到底部无法正常工作

html - Div 降低而不是按钮