Este artigo apresenta o código de exemplo para usar o canvas para desenhar um eletrocardiograma e o compartilha com todos. Os detalhes são os seguintes:
Renderização:
Ideia:
1. Simule pontos (se você tiver dados reais, transforme os dados em pontos coordenados correspondentes à tela)
O importante a se observar ao simular pontos é que as partes elevadas precisam ser simétricas e aparecer aleatoriamente para cima e para baixo para terem uma boa aparência.
2. Desenhe linhas
Ao desenhar linhas, você precisa prestar atenção ao processo de movimento em velocidade constante.
Por exemplo, do ponto A ao ponto B, não é simplesmente de A para B, mas do ponto A para A1, A2...e finalmente para B (é mais difícil mover esta área proporcionalmente)
3. Alguns efeitos de desenho de linha, como adicionar sombras (você pode usá-lo livremente aqui) código específico
<!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8> <title>Eletrocardiograma</title> <meta name=viewport content=width=device-width, escala inicial=1, usuário -escalável=não> <estilo> html,corpo{ largura: 100% altura: 100% margem: 0; 100%; altura: 100%; } </style> </head> <body> <div id=canvas> <canvas id=can></canvas> </div> <script> var can = document.getElementById( 'pode'), pan, índice = 0, flag = true, wid = document.body.clientWidth, hei = document.body.clientHeight, x = 0, y = hei/2, desenharX = 0, desenharY = hei/2, desenharXY = [], cDrawX = 0, i = 0, reX = 0, reY = 0 start() função start(){ can.height = hei; can.width = wid pan = can.getContext(2d); pan.strokeStyle = pan.lineJoin = pan.lineWidth = 6; pan.shadowColor = #228DFF; pan.shadowOffsetX = 0; pan.shadowOffsetY = 0; pan.shadowBlur = 20; 1); função desenharXYS(){ if(desenharX > wid){ }else{ if(desenharY == hei/2){ if(flag){ flag = false }else{ var _y = Math.ceil(Math.random()*10); += Math.random()*180+30; }else{ desenharY -= Math.random()*180+30 } flag = true }; cDrawX = Math.random()*40+15; }else{ drawY = hei/2; (){ var x = desenharXY[i].x, y = desenharXY[i].y if(reX >= x - 1){ reX = x; reY = y; reY = y++; } }else if(y < hei/2){ if(reY <= y){ reX = x; reY = y++; reX = x; reY = y }else{ var c = Math.abs((desenharXY); [i].x-desenharXY[i-1].x)/(desenharXY[i].y-desenharXY[i-1].y)); (reX-desenharXY[i-1].x)/c; if(desenharXY[i].y < desenharXY[i-1].y){ reY = desenharXY[i-1].y - }else{; reY = desenharXY[i-1].y + _yt; pan.closePath(); clearInterval(index); índice = 0; ; } } </script></body></html>O texto acima é todo o conteúdo deste artigo. Espero que seja útil para o estudo de todos. Também espero que todos apoiem a Rede VeVb Wulin.