일부 계산에서 수집 된 정보를 캔버스 그래프에 그려주는 프로그램을 만들려고합니다. 그러나 큰 숫자를 수용 할 수 있도록 그래프의 크기를 조정해야합니다. 그러나 매번 나는 ctx.scale();
전체 캔버스 공백을 넣습니다! 캔버스를 먼저 크기 조정하여이 작업을 중단 할 수 있다고 생각했지만 크기를 조정 한 후에 캔바스에 그려지는 것은 없습니다.scale() 함수를 최우선 순위로 만드는 방법은 무엇입니까?
var c=document.getElementById("graph_");
var ctx=c.getContext("2d");
graph_.style.backgroundColor="white";
var z0=Math.max(Math.abs(a),Math.abs(b));
var z=Math.round(z0);
var z1=Math.round(z);
var z2=z*2
// alert(z1);
// alert(z2);
ctx.scale(3200/z,3200/z)
var xnew=360/2+360/2*a
var ynew=360/2-360/2*b
alert(xnew);
alert(ynew);
ctx.font = '10px Calibri';
ctx.fillText("(0 , 0)", 125, 85);
ctx.fillText(z1, 210, 87);
ctx.fillText(z2, 270, 87);
ctx.fillText(z1*-1, 75, 87);
ctx.fillText(z2*-1, 0, 87);
ctx.fillText(z1, 120, 43.5);
ctx.fillText(z2, 120, 10);
ctx.fillText(z1*-1, 120, 120);
ctx.fillText(z2*-1, 120, 145);
ctx.lineWidth = 1;
ctx.beginPath()
ctx.moveTo(150, 0);
ctx.lineTo(150, 400);
ctx.closePath();
ctx.lineWidth = .2;
ctx.moveTo(0, 75);
ctx.lineTo(400, 75);
ctx.strokeStyle = "#8B8682";
ctx.stroke();
ctx.closePath();
ctx.beginPath();
ctx.lineWidth = 2;
ctx.moveTo(xnew, 180);
ctx.lineTo(180, ynew);
ctx.strokeStyle = "red";
ctx.stroke();
고마워요, 저 눈금이 그것을 확대했다는 것을 결코 알지 못했습니다! 그러나 코드를 사용하여 축을 중심으로 이동하려고 시도했지만 실제로 작동하지 않습니다. 나는 이유를 정말로 모른다. – Samar
다음은 jsfiddle [http://jsfiddle.net/influenztial/Jeska/](http://jsfiddle.net/influenztial/Jeska/) 링크입니다. 눈금과 오프셋을 표시해야합니다. – DerekR
좋아, 나는 사이트를 체크 아웃했다. 수동으로 축소할까요? 나는 Html5와 Javascript에 정말 익숙하지 않기 때문에 잘 모르겠습니다. – Samar