html5画布防止线宽缩放

前端之家收集整理的这篇文章主要介绍了html5画布防止线宽缩放前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果我绘制一个长度为linewidth = 2的矩形,然后将其缩放为矩形的大小的两倍,我得到一个矩形,它的边界是初始线宽的两倍.

有没有办法将线宽保持为2或原始大小的感觉大小.

简而言之,我想只是缩放矩形的大小,但是将线宽保持为大小2.

我尝试在scale(2,2)命令之前和之后设置线宽,但边框宽度也增加.

一个选项是将线宽除以比例因子,如果x和y比例因子相同,这将起作用.

我没有选择缩放矩形宽度和高度,我需要使用scale命令,因为我有其他需要缩放的矩形内的对象.

解决方法

您可以使用转换来定义路径,而无需一个路径.这样线宽不会被改变.

例:

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4.  
  5. <canvas id="myCanvas" width="300" height="150" style="border:1px solid #d3d3d3;">
  6. Your browser does not support the HTML5 canvas tag.</canvas>
  7.  
  8. <script>
  9. var c=document.getElementById("myCanvas");
  10. var ctx=c.getContext("2d");
  11. ctx.save(); //save context without transformation
  12. ctx.scale(2,0.5); //make transformation
  13. ctx.beginPath(); //define path
  14. ctx.arc(100,75,50,2*Math.PI);
  15. ctx.restore(); //restore context without transformation
  16. ctx.stroke(); //stroke path
  17. </script>
  18.  
  19. </body>
  20. </html>

猜你在找的HTML5相关文章