Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/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
Html5 canvas 如何在html5画布中绘制此图?_Html5 Canvas - Fatal编程技术网

Html5 canvas 如何在html5画布中绘制此图?

Html5 canvas 如何在html5画布中绘制此图?,html5-canvas,Html5 Canvas,我如何在html5画布上绘制这个? 我只能做带圆角的矩形部分 <canvas id="myCanvas" width="578" height="200"></canvas> <script type="text/javascript"> function roundRect(x, y, w, h, radius) { var canvas = document.getElementById("myCanvas"); var context = c

我如何在html5画布上绘制这个? 我只能做带圆角的矩形部分

 <canvas id="myCanvas" width="578" height="200"></canvas>
 <script type="text/javascript">
 function roundRect(x, y, w, h, radius)
 {
 var canvas = document.getElementById("myCanvas");
 var context = canvas.getContext("2d");
 var r = x + w;
 var b = y + h;
 context.beginPath();
 context.strokeStyle="green";
 context.lineWidth="4";
 context.moveTo(x+radius, y);
 context.lineTo(r-radius, y);
 context.quadraticCurveTo(r, y, r, y+radius);
 context.lineTo(r, y+h-radius);
 context.quadraticCurveTo(r, b, r-radius, b);
 context.lineTo(x+radius, b);
 context.quadraticCurveTo(x, b, x, b-radius);
 context.lineTo(x, y+radius);
 context.quadraticCurveTo(x, y, x+radius, y);
 context.stroke();
 }
 roundRect(10, 10, 200, 100, 20);
 </script>

如果您喜欢圆角,有一种更简单的方法:您可以使用上下文方法Arctof来绘制一个圆角矩形,您可以编写:

var canvas=document.getElementByIdmyCanvas; var ctx=canvas.getContext2d; 函数roundRectx,y,w,h,r{ var x0=x,y0=y; var x1=x0+w,y1=y0; var x2=x1,y2=y0+h; var x3=x,y3=y2; ctx.strokeStyle=绿色; ctx.线宽=4; ctx.beginPath; ctx.moveTox3,y3-r; ctx.arcTox0,y0,x1,y1,r; ctx.arcTox1,y1,x2,y2,r; ctx.arcTox2,y2,x3,y3,r; ctx.arcTox3,y3,x0,y0,r; ctx.stroke; } roundRect10,10200100,10;
请注意,在现代浏览器中,您可以通过将上下文的过滤器设置为svg过滤器,并使用drawImage和globalCompositeOperation=copy或甚至使用单路径声明+gCO清理将上下文绘制到自身上,从而仅为该形状集成粘性:这不起作用。你能把代码分开吗?脚本中有什么,html主体中有什么,这一部分在哪里?canvas{filter:urlgoo;}感谢Max的反馈。请运行代码段以了解其工作原理。代码已经分开了。如果您在第二个代码段中引用第一部分,即以var canvas开头的部分。。。是JavaScript。包含canvas{filter:urlgoo;}的第二部分是css。第三部分从HTML开始