웹 개발의 세계에서 HTML5 캔버스 요소는 대화식 그래픽, 애니메이션 및 게임을 만드는 강력한 도구로 등장했습니다. 캔버스로 작업 할 때의 일반적인 요구 사항 중 하나는 캔버스 영역에 비해 마우스의 위치를 얻는 것입니다. 이를 통해 개발자는보다 매력적이고 반응이 좋은 사용자 경험을 만들 수 있습니다. 캔버스 공급 업체로서 저는이 기능의 중요성을 이해 하고이 블로그 게시물의 프로세스를 안내합니다.
캔버스 및 마우스 이벤트의 기본 사항 이해
캔버스에서 마우스 위치를 얻기 전에 먼저 JavaScript의 Canvas 요소 및 마우스 이벤트의 기본 개념을 이해해 봅시다.
HTML5 Canvas 요소는 JavaScript를 사용하여 웹 페이지에 그래픽을 그리는 방법을 제공합니다. 본질적으로 페이지의 직사각형 영역으로 다양한 드로잉 방법을 사용하여 모양, 선, 텍스트 등을 생성 할 수 있습니다. 캔버스 사용을 시작하려면<canvas>HTML 파일의 요소를 사용한 다음 JavaScript를 사용하여 액세스하십시오.
<! doctype html> <html lang = "en"> <head> <meta charset = "utf-8"> <meta name = "viewport"content = "width = device-width, 초기 스케일 = 1.0"> <title> 캔버스 마우스 위치 </title> </head> <body> <canvas id = "mycanvas" "800" 높이 = "600"> </canvas> <cript> const canvas = document.getElementById ( 'mycanvas'); const ctx = canvas.getContext ( '2d'); </script> </body> </html>
위 코드에서 먼저ID~의mycanvas너비와 높이를 설정합니다. 그런 다음 JavaScript 코드에서 사용하는 캔버스 요소에 대한 참조를 얻습니다.문서 .getElementById그리고 2D 드로잉 컨텍스트를 사용하여 얻습니다getContext ( '2d').
JavaScript의 마우스 이벤트를 통해 사용자가 웹 페이지의 마우스와 상호 작용할 때를 감지 할 수 있습니다. 일부 일반적인 마우스 이벤트에는 포함됩니다마우스 own,,,마우스 업,,,무질의, 그리고딸깍 하는 소리. 이벤트 리스너를 캔버스 요소에 첨부하여 이러한 이벤트를 감지하고 그에 따라 작업을 수행 할 수 있습니다.
캔버스에서 마우스 위치를 얻습니다
캔버스에서 마우스 위치를 얻으려면 캔버스 요소의 왼쪽 상단 모서리에 대한 마우스의 위치를 계산해야합니다. 마우스 위치는 일반적으로 다음의 형태로 제공됩니다.(X, Y)좌표.


다음 단계는 캔버스에서 마우스 위치를 얻는 과정을 설명합니다.
- a
무질의캔버스 요소의 이벤트 리스너: 사용자가 캔버스 위로 마우스를 움직일 때를 감지 할 수 있습니다. - 뷰포트와 관련하여 마우스의 위치를 얻으십시오.: 우리는 사용할 수 있습니다
ClientX그리고고객마우스 이벤트 객체의 특성 뷰포트에 비해 마우스의 위치를 가져옵니다. - 뷰포트에 대한 캔버스 요소의 위치를 얻으십시오.: 우리는 사용할 수 있습니다
getBoundingClientRect ()방법 뷰포트에 대한 캔버스 요소의 위치와 치수를 얻는 방법. - 캔버스에 대한 마우스 위치를 계산하십시오: 캔버스 요소의 위치를 뷰 포트에 대한 마우스 위치에서 캔버스 요소의 위치에서 캔버스에 비해 마우스 위치를 얻습니다.
위의 단계를 구현하기위한 JavaScript 코드는 다음과 같습니다.
const canvas = document.getElementById ( 'mycanvas'); const ctx = canvas.getContext ( '2d'); canvas.adeventListener ( 'mousemove', function (event) {// 뷰포트 const mousex = event.clientx; const mousey = event.clienty; // viewport const rect = canvas.getboundingclientRect (contvasx =. // 캔버스 Const Condsx -Mousex;
위 코드에서는 a를 첨부합니다무질의캔버스 요소의 이벤트 리스너. 이벤트 리스너 기능 내부에서 먼저 뷰포트를 사용하여 마우스의 위치를 얻습니다.event.clientx그리고이벤트 .clienty. 그런 다음, 우리는 뷰포트를 사용하여 캔버스 요소의 위치를 얻습니다.canvas.getBoundingClientRect (). 마지막으로, 캔버스에 대한 마우스 위치를 얻기 위해 뷰포트에 대한 마우스 위치에서 캔버스 요소의 위치를 빼냅니다.
스케일링 및 변환 처리
경우에 따라 스케일링을 적용하거나 캔버스 요소로 변환 할 수 있습니다. 이것은 캔버스에서 마우스 위치의 계산에 영향을 줄 수 있습니다. 스케일링 및 변환을 처리하려면 캔버스의 현재 변환 매트릭스를 고려해야합니다.
다음 코드는 캔버스에서 마우스 위치를 얻을 때 스케일링을 처리하는 방법을 보여줍니다.
const canvas = document.getElementById ( 'mycanvas'); const ctx = canvas.getContext ( '2d'); // 캔버스 CTX.Scale (2, 2)에 스케일 변환을 적용합니다. canvas.adeventListener ( 'mousemove', function (event) {// 뷰포트 const mousex = event.clientx; const mousey = event.clienty; // viewport const rect = canvas.getboundingclientRect (contvasx =. // 캔버스 const condsex -mousey -mousey -mouse inversematrix = ctx.gettransform (). inversematrix.e; const transformed. b * canvasmousey + inversematrix.f;
위의 코드에서 먼저 사용 캔버스에 스케일 변환을 적용합니다.Ctx.Scale (2, 2). 그런 다음 캔버스에서 마우스 위치를 얻을 때 현재 변환 매트릭스의 역수를 계산합니다.ctx.getTransform (). invertself (). 마지막으로, 캔버스에서 올바른 위치를 얻기 위해 마우스 위치에 역 변환을 적용합니다.
캔버스에서 마우스 위치를 얻는 실제 응용
캔버스에서 마우스 위치를 얻는 것은 웹 개발에 많은 실용적인 응용 프로그램이 있습니다. 몇 가지 예는 다음과 같습니다.
- 대화식 그래픽: 마우스 위치를 사용하여 사용자가 캔버스에서 모양을 클릭하거나 객체를 드래그 할 수 있도록 대화 형 그래픽을 만들 수 있습니다.
- 계략: 게임에서 마우스 위치는 캐릭터의 움직임을 제어하거나 아이템을 촬영하거나 픽업하는 것과 같은 행동을 수행하는 데 사용될 수 있습니다.
- 그리기 응용 프로그램: 마우스 위치를 사용하여 사용자가 마우스를 움직여 캔버스를 그릴 수있는 드로잉 응용 프로그램을 만들 수 있습니다.
우리의 캔버스 제품
캔버스 공급 업체로서 우리는 다양한 응용 분야를위한 다양한 고품질 캔버스 제품을 제공합니다. 우리의 제품에는 포함됩니다도매 저렴한 가격 65%폴리 에스테르 35%면 T/C 65/35 셔츠 직물 직물,,,텐트 용 폴리 에스테르 및면 직물, 그리고유성 염색 직물. 우리의 캔버스 직물은 고품질 재료로 만들어졌으며 다양한 색상과 패턴으로 제공됩니다.
구매하려면 저희에게 연락하십시오
캔버스 제품에 관심이 있거나 캔버스에서 마우스 위치를 얻는 것에 대해 궁금한 점이 있으면 구매 및 추가 토론을 위해 저희에게 연락하십시오. 우리는 최고의 제품과 서비스를 제공하기 위해 최선을 다하고 있습니다.
참조
- html5 캔버스 자습서 : https://developer.mozilla.org/en-us/docs/web/api/canvas_api/tutorial
- JavaScript 마우스 이벤트 : https://developer.mozilla.org/en-us/docs/web/api/mouseevent
- 캔버스 변환 : https://developer.mozilla.org/en-us/web/api/canvasrenderingcontext2d/settransform
