麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 開(kāi)發(fā) > HTML5 > 正文

用canvas畫心電圖的示例代碼

2024-09-05 07:22:38
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文介紹了用canvas畫心電圖的示例代碼,分享給大家,具體如下:

效果圖:

思路:

​1.模擬點(diǎn)(如果你有真實(shí)的數(shù)據(jù),那就是把數(shù)據(jù)幻化成canvas對(duì)應(yīng)的坐標(biāo)點(diǎn))

​ 模擬點(diǎn)時(shí)注意的點(diǎn)就是高起部分需要對(duì)稱以及為了好看要隨機(jī)出現(xiàn)上上下下

2.畫線

​ 畫線需要注意有一個(gè)勻速移動(dòng)的過(guò)程。

​ 比如 A點(diǎn)到B點(diǎn),不是簡(jiǎn)單的A畫到B,而是A點(diǎn)到A1,A2....最后到B(這一塊按照比例移動(dòng)比較難)

3.畫線的一些效果,比如加上陰影(這里就可以自由發(fā)揮了)具體代碼

<!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{             width: 100%;             height: 100%;             margin: 0;         }         canvas{             background: #000;             width: 100%;            height: 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();     function start(){         can.height = hei;         can.width  = wid;         pan = can.getContext("2d");         pan.strokeStyle = "white";         pan.lineJoin = "round";         pan.lineWidth = 6;         pan.shadowColor = "#228DFF";         pan.shadowOffsetX = 0;         pan.shadowOffsetY = 0;         pan.shadowBlur = 20;         pan.beginPath();         pan.moveTo(x,y);         drawXYS();         index = setInterval(move,1);     };     function 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)){                         drawY += Math.random()*180+30;                     }else{                         drawY -= Math.random()*180+30;                     }                     flag = true;                 }                 cDrawX = Math.random()*40+15;             }else{                 drawY = hei/2;             }             drawX += cDrawX;             drawXY.push({                 x : drawX,                 y : drawY             });             drawXYS();         }     }     function move(){         var x = drawXY[i].x,             y = drawXY[i].y;         if(reX >= x - 1){             reX = x;             reY = y;             i++;             cc();             return;         }         if(y > hei/2){             if(reY >= y){                 reX = x;                 reY = y;                 i++;                 cc();                 return;             }         }else if(y < hei/2){             if(reY <= y){                 reX = x;                 reY = y;                 i++;                 cc();                 return;             }         }else{             reX = x;             reY = y;             i++;             cc();             return;         }         reX += 1;         if(y == hei/2){             reY = hei/2;         }else{             var c = Math.abs((drawXY[i].x-drawXY[i-1].x)/(drawXY[i].y-drawXY[i-1].y));             var _yt = (reX-drawXY[i-1].x)/c;             if(drawXY[i].y < drawXY[i-1].y){                 reY = drawXY[i-1].y - _yt;             }else{                 reY = drawXY[i-1].y + _yt;             }         }         cc();     }    function cc(){        if(i == drawXY.length){             pan.closePath();             clearInterval(index);             index = 0;             x = 0;             y = hei/2;             flag = true;             i = 0;         }else{             pan.lineTo(reX, reY);             pan.stroke();         }    } </script></body></html>

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产精品一区在线观看 | 精品一区二区三区免费 | 粉嫩蜜桃麻豆免费大片 | 日本成人在线免费 | 欧美一级做一级爱a做片性 久久久资源网 | 91九色福利 | 亚洲性生活免费视频 | 免费专区 - 91爱爱 | 欧美亚洲一级 | 久久国产精品免费视频 | 主人在调教室性调教女仆游戏 | av成人在线免费观看 | 黄网免费看 | 一本免费视频 | 国产精品一区二区三区在线看 | 日日摸夜夜添夜夜添牛牛 | 国产精品99久久久久久大便 | 久久靖品 | 欧美高清视频一区 | 视频一区二区三区中文字幕 | 毛片在线免费 | 二级大黄大片高清在线视频 | 久久99久久99免费视频 | 日本网站在线看 | 亚洲第一成av人网站懂色 | 操操插插 | 91性高湖久久久久久久久网站 | 蜜桃一本色道久久综合亚洲精品冫 | 久草在线最新 | 久久不射电影网 | 精品久久久久久国产 | 91国内精品久久久久免费影院 | 国产一区二区三区四区五区精品 | 亚洲无av | 九九色网站 | 亚洲一区二区在线 | 男女做性免费网站 | av影片在线观看 | av在线免费电影 | 黄色毛片18 | www.777含羞草|