XML 파일에 좌표가 거의 없습니다. 그것들은 선, 원 및 호입니다. 나는 데이터 구조에서 그들을 읽고 캔버스에 그려려고 노력하고있다. 내가 알아 내려고하는 것은 캔버스를 하위 캔버스로 나누는 방법입니다. 예컨대 내 캔버스가 무엇을 달성하려고하는 말의 1 개 캔버스와 Y1 = 250 = 200 픽셀에서 시작하여 폭과 200 픽셀의 높이의 가상 창을 만드는 방법입니다나누기/하위 캔버스
<canvas id="myCanvas" width="800" height="600" role="img">
Your browser does not support the canvas element.
</canvas>
가정하자. 그리고 그 상자에만있는 이미지를 그립니다.
저는 상상의 상자를 기반으로 이미지의 크기를 줄 였지만 그 상상의 상자에서만 그리는 개념을 둘러 볼 수는 없습니다. 점수는 무작위로 배분됩니다. 전체를 이동하여
var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');
/// for simplicity, save current settings
ctx.save();
/// move coordinate system to the upper left corner of isolated region
ctx.translate(offsetX, offsetY);
/// create a clipping mask by using a simple rectangle
ctx.beginPath();
ctx.rect(0, 0, width, height);
/// define the last path (rectangle) as clipping mask
ctx.clip();
/// ... draw other things into this region from offset 0...
ctx.restore(); /// done and back to full canvas
:
클리핑 마스크를 추가하는 지금 증거로 선을 그립니다 클리핑 영역 외부의 도면을 자르지 않습니다. 오프셋을 더하는 것이 더 좋은 생각입니다. –
@ Agilani 이미 그려진 것은 제거하지 않습니다. * 다음 * 드로잉 작업 만 클립합니다. restore()를 사용하여 마침내 제거하면 모든 것이 캔버스에 남아있게됩니다. – K3N
@ 아가일 라니 내가 이것을 보여주기 위해 바이올린을 추가했습니다. 답변의 하단 부분을 참조하십시오. – K3N