Native JS- und Canvas-simulierte Elektrokardiogramm-Codefreigabe
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>
2: Mehrere definieren Variablen und Zuweisung, diese Variablen werden zur Berechnung zur Laufzeit benötigt
var can = document.getElementById('can'),//画布对象 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轴居中位置开始
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);//让我们的画笔动起来 };
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(); }
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; }
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('can'), 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>
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!

JavaScript ist die Kernsprache der modernen Webentwicklung und wird für seine Vielfalt und Flexibilität häufig verwendet. 1) Front-End-Entwicklung: Erstellen Sie dynamische Webseiten und einseitige Anwendungen durch DOM-Operationen und moderne Rahmenbedingungen (wie React, Vue.js, Angular). 2) Serverseitige Entwicklung: Node.js verwendet ein nicht blockierendes E/A-Modell, um hohe Parallelitäts- und Echtzeitanwendungen zu verarbeiten. 3) Entwicklung von Mobil- und Desktop-Anwendungen: Die plattformübergreifende Entwicklung wird durch reaktnative und elektronen zur Verbesserung der Entwicklungseffizienz realisiert.

Zu den neuesten Trends im JavaScript gehören der Aufstieg von Typenkripten, die Popularität moderner Frameworks und Bibliotheken und die Anwendung der WebAssembly. Zukunftsaussichten umfassen leistungsfähigere Typsysteme, die Entwicklung des serverseitigen JavaScript, die Erweiterung der künstlichen Intelligenz und des maschinellen Lernens sowie das Potenzial von IoT und Edge Computing.

JavaScript ist der Eckpfeiler der modernen Webentwicklung. Zu den Hauptfunktionen gehören eine ereignisorientierte Programmierung, die Erzeugung der dynamischen Inhalte und die asynchrone Programmierung. 1) Ereignisgesteuerte Programmierung ermöglicht es Webseiten, sich dynamisch entsprechend den Benutzeroperationen zu ändern. 2) Die dynamische Inhaltsgenerierung ermöglicht die Anpassung der Seiteninhalte gemäß den Bedingungen. 3) Asynchrone Programmierung stellt sicher, dass die Benutzeroberfläche nicht blockiert ist. JavaScript wird häufig in der Webinteraktion, der einseitigen Anwendung und der serverseitigen Entwicklung verwendet, wodurch die Flexibilität der Benutzererfahrung und die plattformübergreifende Entwicklung erheblich verbessert wird.

Python eignet sich besser für Datenwissenschaft und maschinelles Lernen, während JavaScript besser für die Entwicklung von Front-End- und Vollstapel geeignet ist. 1. Python ist bekannt für seine prägnante Syntax- und Rich -Bibliotheks -Ökosystems und ist für die Datenanalyse und die Webentwicklung geeignet. 2. JavaScript ist der Kern der Front-End-Entwicklung. Node.js unterstützt die serverseitige Programmierung und eignet sich für die Entwicklung der Vollstapel.

JavaScript erfordert keine Installation, da es bereits in moderne Browser integriert ist. Sie benötigen nur einen Texteditor und einen Browser, um loszulegen. 1) Führen Sie sie in der Browser -Umgebung durch, indem Sie die HTML -Datei durch Tags einbetten. 2) Führen Sie die JavaScript -Datei nach dem Herunterladen und Installieren von node.js nach dem Herunterladen und Installieren der Befehlszeile aus.

So senden Sie im Voraus Aufgabenbenachrichtigungen in Quartz Wenn der Quartz -Timer eine Aufgabe plant, wird die Ausführungszeit der Aufgabe durch den Cron -Ausdruck festgelegt. Jetzt...

So erhalten Sie die Parameter von Funktionen für Prototyp -Ketten in JavaScript in JavaScript -Programmier-, Verständnis- und Manipulationsfunktionsparametern auf Prototypungsketten ist eine übliche und wichtige Aufgabe ...

Analyse des Grundes, warum der dynamische Verschiebungsfehler der Verwendung von VUE.JS im WeChat Applet Web-View Vue.js verwendet ...


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

SecLists
SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

Dreamweaver CS6
Visuelle Webentwicklungstools