Heim Web-Frontend js-Tutorial Native JS- und Canvas-simulierte Elektrokardiogramm-Codefreigabe

Native JS- und Canvas-simulierte Elektrokardiogramm-Codefreigabe

Feb 05, 2018 pm 01:33 PM
canvas javascript 心电图

Die HTML-Seite, die ein Elektrokardiogramm simuliert, wird mit nativem js+canvas erstellt. Da sie zusammen mit dem Projekt auf Github abgelegt wird, wird der Einzelseitenmodus von vue.js verwendet Um zusätzliche Frameworks und Stile zu verwenden, können Sie diese Demo auch abschließen. Lassen Sie uns dieses Projekt nun gemeinsam abbauen!

1: Erstellen Sie eine Leinwand auf der Seite, damit sich die „Linie“ des Elektrokardiogramms auf unserer Seite bewegen kann. Da das Projekt relativ einfach ist, wurden die DOM-Elemente auf der Seite bisher geschrieben. Der Hauptarbeitsaufwand konzentriert sich auf den js-Teil


<p class="heartBeat">
   <canvas id="can">Canvas画板</canvas>
 </p>
Nach dem Login kopieren

2: Mehrere definieren Variablen und Zuweisung, diese Variablen werden zur Berechnung zur Laufzeit benötigt


var can = document.getElementById(&#39;can&#39;),//画布对象
    pan,//获取2D图像API接口
    index = 0,//用来接收setinerval的值
    flag = true,//用来控制心电图折线的运行方向
    wid = document.body.clientWidth,//获取浏览器宽度
    hei = document.body.clientHeight,//获取浏览器高度
    x = 0,//心电图的“点”在画布上的x轴坐标,从0开始
    y = hei/2;//心电图的“点”在画布上的y轴坐标,从页面y轴居中位置开始
Nach dem Login kopieren

3: Initialisieren Sie die Leinwand und legen Sie verschiedene Eigenschaften für die Leinwand fest


function start(){
    can.height = hei;//设置画布高度
    can.width = wid;//设置画布宽度
    pan = can.getContext("2d");//获取2D图像API接口
    pan.strokeStyle = "#08b95a";//设置画笔颜色
    pan.lineJoin = "round";//设置画笔轨迹基于圆点拼接
    pan.lineWidth = 9;//设置画笔粗细
    pan.beginPath();//开始一条画笔的路径
    pan.moveTo(x,y);//定位我们的“落笔点”
    index = setInterval(move,1);//让我们的画笔动起来
  };
Nach dem Login kopieren

Wie Sie sehen, haben wir die Aktion „Malen“ hier noch nicht angesprochen. Wir haben lediglich die Leinwandgröße so initialisiert, dass die Leinwand den Bildschirm ausfüllt, und gleichzeitig definiert Geben Sie die Farbe, Dicke, Stiftspitze usw. des Pinselvorgangs ein und verwenden Sie dann die setInterval-Methode, um die Bewegung des Pinsels entlang der von uns berechneten Route aufrechtzuerhalten. Wenn Sie mit der setInterval-Methode nicht sehr vertraut sind, wird empfohlen, sie zu verwenden Schauen Sie sich die Verwendung von setInterVal an, die hier nicht beschrieben wird. Da wir möchten, dass das EKG eine Endlosschleife durchläuft und automatisch ausgeführt wird, kapseln wir es hier als Funktion start() ein, sodass wir, wenn sich das EKG ganz nach rechts auf dem Bildschirm bewegt, die Funktion start() erneut ausführen, um das EKG zu erstellen unendlich. Es ist eine Schleife

Lass das Elektrokardiogramm laufen! Man kann sagen, dass die vorherigen Schritte nicht schwierig sind. Der eigentliche Kerncode besteht darin, unser Elektrokardiogramm entlang der gewünschten Route zu bewegen


function move(){
    x++;//x轴是始终运动的,所以x一直自增
    if(x < 100){
      //前100px,我们不希望做垂直运动,让点只沿垂直方向运动即可,所以不做任何操作
    }else{
      if(x >= wid - 100){
      //最后的100px,同样希望心电图只做水平运动,不会上下波动,所以不做任何操作
      }else{
        //为了让心电图看起来更加逼真,我们希望心电图在运动时每次的波峰和波谷都是随机的,这样更类似于人类的心跳,所以我们给它一个随机值z
        var z = Math.random()*280;

        if(y <= z){
          //画布的坐标是从左上角开始计算的,也就是最左上角的点的坐标是(0,0),y是当前画笔所在坐标的y轴,假如y小于z,就代表y已经到达波峰位置,准备开始向波谷运动
          flag = true
        }
        if((hei - y) <= z){
          //假如当前画笔在y轴的坐标y距离浏览器底部hei的差值已经小于随机值z,代表当前的画笔已经运行到波谷位置,准备转向波峰位置运动
          flag = false
        }
        if(flag){
          //假如flag为true,代表画笔仍然向波谷位置前进,需要花点功夫理解的是,因为画布左上角的点的坐标是(0,0),所以y的值越大,画笔在y轴的位置越靠近浏览器底部,所以向波谷运动时,y的值是不断增加的,同时为了让波峰波谷更陡峭,我这里设置y += 5,
          y+=5
        }else{
          //假如flag为false,表示向波峰运动,y的值是不断减小的
          y-=5
        }
      }
    }
    if(x == wid){
      //当画笔运动到浏览器右侧边缘,停止绘图
      pan.closePath();
      //清除循环
      clearInterval(index);
      //将index置零,准备下一次循环
      index = 0;
      //重新定位画笔到屏幕左侧上下居中的位置
      x = 0;
      y = hei/2;
      flag = true;
      //重新进行下一次心电图的绘制
      start();
    }
    //lineTo和stroke函数负责描绘运动轨迹
    pan.lineTo(x,y);
    pan.stroke();
  }
Nach dem Login kopieren

5: Hinweis: Zu diesem Zeitpunkt ist das Elektrokardiogramm tatsächlich laufbereit, es sollte jedoch beachtet werden, dass Sie Ihre Körpergröße auf 100 % einstellen, da die Leinwand sonst möglicherweise nicht die gesamte Seite ausfüllen kann


html,body{
   width: 100%;
   height: 100%;
   margin: 0;
  }
Nach dem Login kopieren

Vollständiger Projektcode:


<!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;
    }
  </style>
</head>
<body>
<p id="canvas">
  <canvas id="can">Canvas画板</canvas>
</p>

<script src="js/vue.min.js"></script>
<script>
  var can = document.getElementById(&#39;can&#39;),
    pan,
    index = 0,
    flag = true,
    wid = document.body.clientWidth,
    hei = document.body.clientHeight,
    x = 0,
    y = hei/2;
  start();
  function start(){
    can.height = hei;
    can.width = wid;
    pan = can.getContext("2d");//获取2D图像API接口
    pan.strokeStyle = "#08b95a";//设置画笔颜色
    pan.lineJoin = "round";//设置画笔轨迹基于圆点拼接
    pan.lineWidth = 9;//设置画笔粗细
    pan.beginPath();
    pan.moveTo(x,y);
    index = setInterval(move,1);
  };
  function move(){
    x++;
    if(x < 100){

    }else{
      if(x >= wid - 100){

      }else{
        var z = Math.random()*280;
        if(y <= z){
          flag = true
        }
        if((hei - y) <= z){
          flag = false
        }
        if(flag){
          y+=5
        }else{
          y-=5
        }
      }
    }
    if(x == wid){
      pan.closePath();
      clearInterval(index);
      index = 0;
      x = 0;
      y = hei/2;
      flag = true;
      start();
    }
    pan.lineTo(x,y);
    pan.stroke();
  }

 /* */

</script>
</body>
</html>
Nach dem Login kopieren

Verwandte Empfehlungen:

Canvas realisiert umwerfende Partikelbewegungseffekte

Canvas-Polygonzeichnungsbeispiel

HTML2 Canvas realisiert Browser-Screenshots

Das obige ist der detaillierte Inhalt vonNative JS- und Canvas-simulierte Elektrokardiogramm-Codefreigabe. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So implementieren Sie ein Online-Spracherkennungssystem mit WebSocket und JavaScript So implementieren Sie ein Online-Spracherkennungssystem mit WebSocket und JavaScript Dec 17, 2023 pm 02:54 PM

So implementieren Sie mit WebSocket und JavaScript ein Online-Spracherkennungssystem. Einführung: Mit der kontinuierlichen Weiterentwicklung der Technologie ist die Spracherkennungstechnologie zu einem wichtigen Bestandteil des Bereichs der künstlichen Intelligenz geworden. Das auf WebSocket und JavaScript basierende Online-Spracherkennungssystem zeichnet sich durch geringe Latenz, Echtzeit und plattformübergreifende Eigenschaften aus und hat sich zu einer weit verbreiteten Lösung entwickelt. In diesem Artikel wird erläutert, wie Sie mit WebSocket und JavaScript ein Online-Spracherkennungssystem implementieren.

WebSocket und JavaScript: Schlüsseltechnologien zur Implementierung von Echtzeitüberwachungssystemen WebSocket und JavaScript: Schlüsseltechnologien zur Implementierung von Echtzeitüberwachungssystemen Dec 17, 2023 pm 05:30 PM

WebSocket und JavaScript: Schlüsseltechnologien zur Realisierung von Echtzeit-Überwachungssystemen Einführung: Mit der rasanten Entwicklung der Internet-Technologie wurden Echtzeit-Überwachungssysteme in verschiedenen Bereichen weit verbreitet eingesetzt. Eine der Schlüsseltechnologien zur Erzielung einer Echtzeitüberwachung ist die Kombination von WebSocket und JavaScript. In diesem Artikel wird die Anwendung von WebSocket und JavaScript in Echtzeitüberwachungssystemen vorgestellt, Codebeispiele gegeben und deren Implementierungsprinzipien ausführlich erläutert. 1. WebSocket-Technologie

JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Wettervorhersagesystems JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Wettervorhersagesystems Dec 17, 2023 pm 05:13 PM

JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Wettervorhersagesystems Einführung: Heutzutage ist die Genauigkeit von Wettervorhersagen für das tägliche Leben und die Entscheidungsfindung von großer Bedeutung. Mit der Weiterentwicklung der Technologie können wir genauere und zuverlässigere Wettervorhersagen liefern, indem wir Wetterdaten in Echtzeit erhalten. In diesem Artikel erfahren Sie, wie Sie mit JavaScript und WebSocket-Technologie ein effizientes Echtzeit-Wettervorhersagesystem aufbauen. In diesem Artikel wird der Implementierungsprozess anhand spezifischer Codebeispiele demonstriert. Wir

Einfaches JavaScript-Tutorial: So erhalten Sie den HTTP-Statuscode Einfaches JavaScript-Tutorial: So erhalten Sie den HTTP-Statuscode Jan 05, 2024 pm 06:08 PM

JavaScript-Tutorial: So erhalten Sie HTTP-Statuscode. Es sind spezifische Codebeispiele erforderlich. Vorwort: Bei der Webentwicklung ist häufig die Dateninteraktion mit dem Server erforderlich. Bei der Kommunikation mit dem Server müssen wir häufig den zurückgegebenen HTTP-Statuscode abrufen, um festzustellen, ob der Vorgang erfolgreich ist, und die entsprechende Verarbeitung basierend auf verschiedenen Statuscodes durchführen. In diesem Artikel erfahren Sie, wie Sie mit JavaScript HTTP-Statuscodes abrufen und einige praktische Codebeispiele bereitstellen. Verwenden von XMLHttpRequest

Lernen Sie das Canvas-Framework kennen und erklären Sie das häufig verwendete Canvas-Framework im Detail Lernen Sie das Canvas-Framework kennen und erklären Sie das häufig verwendete Canvas-Framework im Detail Jan 17, 2024 am 11:03 AM

Entdecken Sie das Canvas-Framework: Um die häufig verwendeten Canvas-Frameworks zu verstehen, sind spezifische Codebeispiele erforderlich. Einführung: Canvas ist eine in HTML5 bereitgestellte Zeichen-API, mit der wir umfangreiche Grafik- und Animationseffekte erzielen können. Um die Effizienz und den Komfort des Zeichnens zu verbessern, haben viele Entwickler verschiedene Canvas-Frameworks entwickelt. In diesem Artikel werden einige häufig verwendete Canvas-Frameworks vorgestellt und spezifische Codebeispiele bereitgestellt, um den Lesern ein tieferes Verständnis für die Verwendung dieser Frameworks zu vermitteln. 1. EaselJS-Framework Ea

Entdecken Sie die wichtige Rolle und Anwendung von Canvas in der Spieleentwicklung Entdecken Sie die wichtige Rolle und Anwendung von Canvas in der Spieleentwicklung Jan 17, 2024 am 11:00 AM

Verstehen Sie die Leistungsfähigkeit und Anwendung von Canvas in der Spieleentwicklung. Überblick: Mit der rasanten Entwicklung der Internettechnologie werden Webspiele bei Spielern immer beliebter. Als wichtiger Bestandteil der Webspielentwicklung hat sich die Canvas-Technologie nach und nach in der Spieleentwicklung durchgesetzt und ihre leistungsstarke Leistungsfähigkeit und Anwendung unter Beweis gestellt. In diesem Artikel wird das Potenzial von Canvas in der Spieleentwicklung vorgestellt und seine Anwendung anhand spezifischer Codebeispiele demonstriert. 1. Einführung in die Canvas-Technologie Canvas ist ein neues Element in HTML5, das uns die Verwendung ermöglicht

So erhalten Sie auf einfache Weise HTTP-Statuscode in JavaScript So erhalten Sie auf einfache Weise HTTP-Statuscode in JavaScript Jan 05, 2024 pm 01:37 PM

Einführung in die Methode zum Abrufen des HTTP-Statuscodes in JavaScript: Bei der Front-End-Entwicklung müssen wir uns häufig mit der Interaktion mit der Back-End-Schnittstelle befassen, und der HTTP-Statuscode ist ein sehr wichtiger Teil davon. Das Verstehen und Abrufen von HTTP-Statuscodes hilft uns, die von der Schnittstelle zurückgegebenen Daten besser zu verarbeiten. In diesem Artikel wird erläutert, wie Sie mithilfe von JavaScript HTTP-Statuscodes erhalten, und es werden spezifische Codebeispiele bereitgestellt. 1. Was ist ein HTTP-Statuscode? HTTP-Statuscode bedeutet, dass der Dienst den Dienst anfordert, wenn er eine Anfrage an den Server initiiert

Der Entwicklungstrend und die Zukunftsaussichten von Canvas im chinesischen Bildungssektor Der Entwicklungstrend und die Zukunftsaussichten von Canvas im chinesischen Bildungssektor Jan 17, 2024 am 10:22 AM

Mit der rasanten Entwicklung von Wissenschaft und Technologie und der weit verbreiteten Anwendung der Informationstechnologie im Bildungsbereich entwickelt sich Canvas als weltweit führendes Online-Lernmanagementsystem nach und nach in der chinesischen Bildungsbranche weiter. Das Aufkommen von Canvas bietet neue Möglichkeiten für die Reform der Bildung und Lehrmethoden in China. In diesem Artikel werden die Entwicklungstrends und -aussichten von Canvas im chinesischen Bildungssektor untersucht. Einer der Entwicklungstrends von Canvas im chinesischen Bildungssektor ist zunächst die tiefgreifende Integration. Mit der rasanten Entwicklung von Cloud Computing, Big Data und künstlicher Intelligenz wird Canvas immer mehr

See all articles