나는 반응이 좋은 캔버스를하려고합니다. 내 모든 테스트는 600x600 캔버스로 수행되었으며 그 높이와 너비로 제대로 작동하고 모든 선을 정확하게 그립니다. 문제는 내가 이것을 시도한 것입니다 :부트 스트랩의 반응 캔버스
#myCanvas {
background-color: #ffffff;
border:1px solid #000000;
min-height: 600px;
height: 100%;
width: 100%;
}
그냥 myCanvas가 sm-col-8 안에 있습니다.
내 랩톱에서 멋지게 보이고 내 전화기에서 멋지게 보이지만 (내 무승부() 기능 때문에 사각형을 생각하고 있기 때문에) 왼쪽 아래 모서리 (근처)에서 더 많이 시작합니다. 오른쪽 상단에서 시작해야합니다.
그래서 draw() 함수를 변경하고 싶지는 않지만 원하는 것은 캔버스 크기를 다시 스케일하는 것입니다. 내 말은 : 만약 내가 랩톱/태블릿에 600x600으로 있다면, 그 크기로 보여 주겠지 만, 만약 내가 384x640이 300x300과 같은 것을 보여주는 나의 휴대폰에 있다면? 좋은 해결책이 될지 모르겠습니다.
내 그리기 기능 :
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();
}