js使用canvs绘制多边形,或者根据后端给的二维数组,绘制一个区域,给区域上色
<canvas id="myCanvas" width="285" height="401"></canvas>
var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("2d");
let res_data = [[10,10], [30, 102], [90, 190], [162, 110], [88, 13], ]
var poly = flatten(res_data);
function flatten(arr) {
return [].concat(...arr.map(x =>
Array.isArray(x) ? flatten(x) : x
))
}
context.fillStyle = "#ff3e2968";
polygon(poly, context);
function polygon(poly, context) {
context.beginPath();
context.moveTo(poly[0], poly[1]);
for (var i = 2; i < poly.length; i += 2) {
context.lineTo(poly[i], poly[i + 1]);
console.log(poly[i], poly[i + 1]);
}
context.closePath();
context.fill();
context.stroke();
context.closePath()
}
- 效果图
