缩放或切片画布HTML5的一部分

缩放或切片画布HTML5的一部分,html,canvas,zooming,pie-chart,Html,Canvas,Zooming,Pie Chart,我正在使用HTML画布库构建一个“饼图”,现在要完成它,我需要 单击扇形图的某一部分后,将其缩放或切片 除了上面的例外,我几乎完成了饼图 请不要建议我使用任何现有的图表库您想要的东西无法直接完成:当您在画布上绘制时,您会在画布上绘制立即变干的像素。如果你想“放大”,你必须擦除画布(ctx.clearRect(…))并使用更多像素重新绘制饼图。这就是像Canvas这样的非保留绘图模式(或即时绘图模式)图形API所需要的 与SVG(一种保留的绘图模式图形系统)相比,SVG是一种保留的绘图模式图形系统

我正在使用HTML画布库构建一个“饼图”,现在要完成它,我需要 单击扇形图的某一部分后,将其缩放或切片

除了上面的例外,我几乎完成了饼图


请不要建议我使用任何现有的图表库

您想要的东西无法直接完成:当您在画布上绘制时,您会在画布上绘制立即变干的像素。如果你想“放大”,你必须擦除画布(
ctx.clearRect(…)
)并使用更多像素重新绘制饼图。这就是像Canvas这样的非保留绘图模式(或即时绘图模式)图形API所需要的

与SVG(一种保留的绘图模式图形系统)相比,SVG是一种保留的绘图模式图形系统,其中用于绘制内容的命令会生成元素,您可以跟踪这些元素的事件,调整其属性,并查看为您更新的可视结果

您可以通过更改绘图命令(更大的
圆弧
半径、
线宽
等)或(更改比例和平移),然后再次发出相同的绘图命令来“放大”——将饼图重新绘制得更大


还有一个非选项:如果画布的
width
height
属性保持不变,但将
CSS
更改为
height
width
属性,则可以在画布上“放大”,而无需重新绘制。但是,这会导致画布上的每个虚拟像素在屏幕上增长,从而导致像素化。

OK不要使用库,请仔细阅读画布手册和API文档。