Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何使用画布绘制三维饼图,并根据鼠标单击显示百分比?_Jquery_Html_Canvas_3d_Pie Chart - Fatal编程技术网

Jquery 如何使用画布绘制三维饼图,并根据鼠标单击显示百分比?

Jquery 如何使用画布绘制三维饼图,并根据鼠标单击显示百分比?,jquery,html,canvas,3d,pie-chart,Jquery,Html,Canvas,3d,Pie Chart,我有个问题,请给我一些建议好吗?我的问题是:绘制三维饼图,当您单击并移动到饼图中的某个点时,该部分将显示从起点(12点钟方向)到释放鼠标的点 请给我一些想法,我不擅长数学,不知道如何计算鼠标从一个点释放的角度以及从给定点到鼠标释放点的绘图部分 提前谢谢!对不起,我的英语不好,如果它让你很难理解我想说的话。再次感谢 老问题,但听起来像个有趣的问题。在这一点上,我坚持使用2D。如果你需要3D,你可以从学习这一点开始,然后找出如何将其转换为3D空间,这显然要困难得多 您希望找到饼图切片的角度,该角度由

我有个问题,请给我一些建议好吗?我的问题是:绘制三维饼图,当您单击并移动到饼图中的某个点时,该部分将显示从起点(12点钟方向)到释放鼠标的点

请给我一些想法,我不擅长数学,不知道如何计算鼠标从一个点释放的角度以及从给定点到鼠标释放点的绘图部分


提前谢谢!对不起,我的英语不好,如果它让你很难理解我想说的话。再次感谢

老问题,但听起来像个有趣的问题。在这一点上,我坚持使用2D。如果你需要3D,你可以从学习这一点开始,然后找出如何将其转换为3D空间,这显然要困难得多

您希望找到饼图切片的角度,该角度由一条从12点(pi/2)开始到将鼠标单击与顶点平分的半径结束的圆弧形成。然后使用画布填充该区域

数学-

通过构造一个直角三角形找到该角度:

第1面(y):从圆的中心(顶点)垂直到单击的y位置

第2(x)面:从单击的y位置到单击的x位置的水平方向

第3面:从顶点到单击x位置的对角线(这是斜边,红色,不需要知道)

记住,鼠标位置是从左到右,从上到下计数的

查看边x的长度如何等于单击的x位置减去圆的半径

接下来,使用余切(相邻侧/对侧),并将其从pi(180度)中减去,以找到着色区域的角度

正如你所看到的,在一些象限中你会加上圆周率,而在一些象限中你不会,但这基本上就是你找到切片角度的方法

另外,你必须调整圆的1/4(1/2π),因为你从1/2π(90度)开始

代码-

这是一个jQuery插件-

圆的直径由canvas元素的size属性设置

i、 e。
将创建400像素宽的圆

您可以自定义边框大小、边框颜色和饼图填充颜色

您可以为onRelease和onDrag添加回调,它们是选定切片的传递百分比、度和弧度

简单演示:


完整演示:

老问题,但听起来像一个有趣的问题。在这一点上,我坚持使用2D。如果你需要3D,你可以从学习这一点开始,然后找出如何将其转换为3D空间,这显然要困难得多

您希望找到饼图切片的角度,该角度由一条从12点(pi/2)开始到将鼠标单击与顶点平分的半径结束的圆弧形成。然后使用画布填充该区域

数学-

通过构造一个直角三角形找到该角度:

第1面(y):从圆的中心(顶点)垂直到单击的y位置

第2(x)面:从单击的y位置到单击的x位置的水平方向

第3面:从顶点到单击x位置的对角线(这是斜边,红色,不需要知道)

记住,鼠标位置是从左到右,从上到下计数的

查看边x的长度如何等于单击的x位置减去圆的半径

接下来,使用余切(相邻侧/对侧),并将其从pi(180度)中减去,以找到着色区域的角度

正如你所看到的,在一些象限中你会加上圆周率,而在一些象限中你不会,但这基本上就是你找到切片角度的方法

另外,你必须调整圆的1/4(1/2π),因为你从1/2π(90度)开始

代码-

这是一个jQuery插件-

圆的直径由canvas元素的size属性设置

i、 e。
将创建400像素宽的圆

您可以自定义边框大小、边框颜色和饼图填充颜色

您可以为onRelease和onDrag添加回调,它们是选定切片的传递百分比、度和弧度

简单演示:

完整演示: