我正在尝试制作一个响应式画布。我所有的测试都是在600x600的画布上进行的,使用该高度和宽度时,它可以正常工作并正确绘制每条线。问题是我尝试了以下内容:
#myCanvas {
background-color: #ffffff;
border:1px solid #000000;
min-height: 600px;
height: 100%;
width: 100%;
}
只是为了记录一下,我的画布(myCanvas)在sm-col-8中。在我的笔记本电脑上看起来很好,在手机上也很好,但是(由于我的draw()函数会考虑正方形),绘图开始的位置更像是在左下角而不是右上角。因此,我不想改变我的draw()函数,但我想重新调整画布大小。我的意思是:如果我在笔记本电脑/平板电脑上尺寸为600x600,则显示为该尺寸;但如果我在拥有384x640的手机上,则显示为300x300?我不知道这是否是一个好的解决方案。
我的draw函数:
function drawLines(lines,i,table,xtotal,ytotal){
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
var xIni;
var xFin;
var yIni;
var yFin;
xIni = (c.width*parseInt(lines[i][1])/xtotal);
yIni = (c.height*parseInt(lines[i][2])/ytotal);
xFin = (c.width*parseInt(lines[i][3])/xtotal);
yFin = (c.height*parseInt(lines[i][4])/ytotal);
ctx.beginPath();
ctx.moveTo(xIni,c.height-yIni);
ctx.lineTo(xFin,c.height-yFin);
ctx.lineWidth=4;
ctx.strokeStyle = colorAleatorio();
ctx.stroke();
}