Canvas繪製心電圖——改變波幅(JS按鈕改變Canvas圖片大小)

想了解心電圖繪製過程的同窗能夠查看原先的技術文檔,canvas

單純想了解JS放大縮小功能的,認真讀懂此片文檔。ide

寫法不少,不惟一,在這裏只舉個人例子。函數

首先咱們須要在原有的變量定義基礎上增長兩個變量:spa

 

以後開始寫JS方法:code

1 var mulNum = 1; //定義增益變量
2 var i = 1; //定義判斷值變量

以後寫增益變化方法(即JS編寫放大縮小的判斷):blog

//心電圖波紋增益
function multiple() {
  if (i == 4) {
    i = 1;
  }
  i++;
  switch (i) {
    case 2:
      mulNum = 2;
      document.getElementById("multiple").innerHTML = "增益(20)";
      break;
    case 3:
      mulNum = 0.5;
      document.getElementById("multiple").innerHTML = "增益(5)";
      break;
    case 4:
      mulNum = 1;
      document.getElementById("multiple").innerHTML = "增益(10)";
      break;
  }
  hide();//清除
  draw();//重繪
}

這裏的i要定義在外面,否則每次執行這個函數,都會從新加載一遍i=1,寫在外面就不會發生這樣的狀況。ip

以後咱們還須要在每次變化以後,將按鈕原有的值作一個變化。因此利用inner。文檔

以後咱們將mulNum的值乘一下想要改變原來圖形的座標就能夠了,在這裏我是對心電圖的Y軸的值作一個改變因此在Y軸乘mulNum便可:get

 1 /**繪製心電圖 */
 2 function drawLine(c_canvas) {
 3   hb = c_canvas.getContext("2d");
 4   hb.strokeStyle = "#0f0";
 5   //線條顏色爲綠色
 6   hb.strokeWidth = 2;
 7   //線條粗細爲2
 8   hb.beginPath();
 9   beatArray.forEach(a => {
10     hb.lineTo(a[0], a[1] * mulNum + 80);
11   });
12   /**for循環 */
13   hb.stroke();
14   hb.closePath();
15 }

就像文章開頭提到的,想要實現任何功能的方法不惟一,我這只是提供一種我我的的思路,但願有大佬能有更簡便易懂的方法互相交流討論。it

想了解心電圖的朋友、或者只對這樣幾句代碼很差理解的,能夠關注我以前的幾篇文檔,把以前幾篇文檔合起來就是一篇完整的代碼供參考。

//心電圖波紋增益
function multiple() {
if (i == 4) {
i = 1;
}
i ++;
switch (i) {
case 2:
mulNum = 2;
document. getElementById( "multiple").innerHTML = "增益(20)";
break;
case 3:
mulNum = 0.5;
document. getElementById( "multiple").innerHTML = "增益(5)";
break;
case 4:
mulNum = 1;
document. getElementById( "multiple").innerHTML = "增益(10)";
break;
}
hide(); //清除
draw(); //重繪
}
相關文章
相關標籤/搜索