이번 글에서는 캔버스를 이용해 심전도를 그리는 샘플 코드를 소개하고, 자세한 내용은 다음과 같습니다.
표현:
아이디어:
1. 포인트 시뮬레이션(실제 데이터가 있는 경우 데이터를 캔버스에 해당하는 좌표점으로 변환)
점을 시뮬레이션할 때 주의해야 할 중요한 점은 돌출된 부분이 대칭이 되어야 하고 위아래로 무작위로 나타나야 보기에 좋다는 것입니다.
2. 선 그리기
선을 그릴 때 일정한 속도로 움직이는 과정에 주의를 기울여야 합니다.
예를 들어 A지점에서 B지점으로 단순히 A에서 B로 가는 것이 아니라 A지점에서 A1, A2...그리고 마지막으로 B로 가는 것입니다. (이 영역을 비례적으로 이동시키는 것이 더 어렵습니다.)
3. 그림자 추가(여기서 자유롭게 사용 가능) 특정 코드와 같은 선 그리기의 일부 효과
<!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8> <title>심전도</title> <meta name=viewport content=width=device-width,initial-scale=1, user -scalable=no> <style> html,body{ 너비: 100%; 높이: 100%; 여백: 0 } 캔버스{ 배경: #000; 100%; 높이: 100%; } </style> </head> <body> <div id=canvas> <canvas id=can></canvas> </div> <script> var can = document.getElementById( '할 수 있음'), 팬, 인덱스 = 0, 플래그 = true, wid = document.body.clientWidth, hei = document.body.clientHeight, x = 0, y = hei/2, drawX = 0, drawY = hei/2, drawXY = [], cDrawX = 0, i = 0, reX = 0, reY = 0 function start(){ can.height = hei; can.width = wid; pan = can.getContext(2d); pan.lineJoin = pan.lineWidth = 6; pan.shadowColor = #228DFF; pan.shadowOffsetY = 0; pan.beginPath(); drawXYS(); 1); }; 함수 drawXYS(){ if(drawX > wid){ }else{ if(drawY == hei/2){ if(flag){ flag = false; }else{ var _y = Math.ceil(Math.random()*10) _y = _y/2; if(Number.isInteger(_y)); += Math.random()*180+30; }else{ drawY -= Math.random()*180+30 } 플래그 = true; cDrawX = Math.random()*40+15; }else{ drawY = hei/2; } drawX += cDrawX.push({ x : drawX, y : drawY }); (){ var x = drawXY[i].x, y = drawXY[i].y; if(reX >= x - 1){ reX = x; i++; cc(); if(y >= y){ reY = y++; } }else if(y <= y){ reX = x; i++ } }else; reX = x; i++; cc(); if(y == hei/2){ var c = Math.abs [i].x-drawXY[i-1].x)/(drawXY[i].y-drawXY[i-1].y)); (reX-drawXY[i-1].x)/c; if(drawXY[i].y < drawXY[i-1].y){ reY = drawXY[i-1].y - _yt; reY = drawXY[i-1].y + _yt; } } cc() } function cc(){ if(i == drawXY.length){ pan.closePath(); index = 0; y = hei/2; i = 0; pan.lineTo(reX, reY); ; } } </script></body></html>위 내용은 이 기사의 전체 내용입니다. 모든 분들의 학습에 도움이 되기를 바랍니다. 또한 모든 분들이 VeVb Wulin Network를 지지해 주시길 바랍니다.