この記事では、Canvasを使って心電図を描画するサンプルコードを紹介し、皆さんに共有します。詳細は次のとおりです。
レンダリング:
アイデア:
1. 点をシミュレートします (実際のデータがある場合は、データをキャンバスに対応する座標点に変換します)
ポイントをシミュレートする際に注意すべき重要な点は、見栄えを良くするには、隆起部分が対称である必要があり、上下にランダムに表示される必要があるということです。
2. 線を引く
線を描くときは、一定の速度で移動する過程に注意を払う必要があります。
たとえば、点 A から点 B へは、単に A から B へではなく、点 A から A1、A2...そして最後に B へ移動します (この領域を比例的に移動するのはより困難です)。
3. 影の追加などの線画の効果 (ここでは自由に使用できます) 特定のコード
<!DOCTYPE html> <html lang=ja> <head> <meta charset=UTF-8> <title>心電図</title> <meta name=viewport content=width=device-width,initial-scale=1, user -scalable=no> <スタイル> html,body{ 幅: 100%; 高さ: 100%; } キャンバス{ 背景: #000; 100%; 高さ: 100%; } </style> </head> <body> <div id=canvas> <canvas id=can></canvas> </div> <script> var can = document.getElementById( 'can')、pan、index = 0、flag = 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; 関数 start(){ can.height = hei; can.width = wid; pan.getContext(2d); pan.lineJoin = ラウンド; pan.shadowColor = #228DFF; pan.shadowOffsetX = 0; pan.beginPath(x,y); 1); }; 関数drawXYS(){ if(drawX > wid){ }else{ if(drawY == hei/2){ if(flag){ flag = false; }else{ var _y = Math.ceil(Math.random()*10); if(Number.isInteger(_y)); += Math.random()*180+30; }else{drawY -= Math.random()*180+30; } cDrawX = Math.random()*40+15; }else{drawX += cDrawX({x:drawX,y:drawY}); (){ var x =drawXY[i].x, y =drawXY[i].y if(reX >= x - 1){ reX = x; i++; } if(y >= y){ reY = y; } } }else if(y < hei/2){ reX = x; } }else{ reX = x; reY = y; cc(); } reX += 1; reY = hei/2; [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() } 関数 cc(){ if(i ==drawXY.length){ pan.closePath(); インデックス = 0; y = hei/2; }else{ ; } } </script></body></html>以上がこの記事の全内容です。皆様の学習のお役に立てれば幸いです。また、VeVb Wulin Network をご支援いただければ幸いです。