Javascript 画布多边形边框被裁剪
当我将线宽设置为大于1时,将显示裁剪的线条。 考虑到定义的线宽,我想知道如何在画布尺寸中显示多边形而不进行裁剪。 提前谢谢Javascript 画布多边形边框被裁剪,javascript,html,canvas,html5-canvas,Javascript,Html,Canvas,Html5 Canvas,当我将线宽设置为大于1时,将显示裁剪的线条。 考虑到定义的线宽,我想知道如何在画布尺寸中显示多边形而不进行裁剪。 提前谢谢 var c=document.getElementById(“myCanvas”); var ctx=c.getContext(“2d”); 变量多边形=[ {x:178,y:160},{x:124,y:0},{x:265,y:88}, {x:382,y:0},{x:393,y:118},{x:770,y:178}, {x:479,y:221},{x:441,y:228}
var c=document.getElementById(“myCanvas”);
var ctx=c.getContext(“2d”);
变量多边形=[
{x:178,y:160},{x:124,y:0},{x:265,y:88},
{x:382,y:0},{x:393,y:118},{x:770,y:178},
{x:479,y:221},{x:441,y:228},{x:579,y:376},
{x:309,y:314},{x:197,y:428},{x:183,y:304},
{x:0,y:324},{x:132,y:240},{x:36,y:152}
];
ctx.strokeStyle=“rgba(46,139,86,1.00)”;
ctx.fillStyle=“rgba(156205,50,1.00)”;
ctx.lineWidth=9;
ctx.beginPath();
移动到(多边形[0].x,多边形[0].y);
对于(var i=1;i那么您正试图将其保持在画布的边界内?如果是这样,您可以使用将当前线宽加倍并在该点填充/笔划,从而将其保持在画布的边界内。默认的剪辑算法不允许点填充到画布之外,这使得该算法始终适用于r画布边界
下面的例子
var c=document.getElementById(“myCanvas”);
var ctx=c.getContext(“2d”);
变量多边形=[
{x:178,y:160},{x:124,y:0},{x:265,y:88},
{x:382,y:0},{x:393,y:118},{x:770,y:178},
{x:479,y:221},{x:441,y:228},{x:579,y:376},
{x:309,y:314},{x:197,y:428},{x:183,y:304},
{x:0,y:324},{x:132,y:240},{x:36,y:152}
];
ctx.strokeStyle=“rgba(46,139,86,1.00)”;
ctx.fillStyle=“rgba(156205,50,1.00)”;
常数线宽=9;
ctx.lineWidth=线宽;
ctx.beginPath();
移动到(多边形[0].x,多边形[0].y);
对于(var i=1;我感谢你!它解决了我的问题;)我没有意识到关于clip算法的行为。