Heim Backend-Entwicklung PHP-Tutorial Von HTML5 Canvas erstelltes Telekommunikationsnetzwerk-Topologiediagramm

Von HTML5 Canvas erstelltes Telekommunikationsnetzwerk-Topologiediagramm

Feb 07, 2018 pm 03:10 PM
canvas h5 html5

Dieser Artikel stellt Ihnen hauptsächlich das auf HTML5 Canvas erstellte Telekommunikationsnetzwerk-Topologiediagramm vor. Ich hoffe, es kann Ihnen helfen.

Telekommunikationsnetzwerkstruktur bezeichnet die Kombinationslogik und Konfigurationsform verschiedener Netzwerkeinheiten des Telekommunikationsnetzwerks, die nach technischen Anforderungen und wirtschaftlichen Grundsätzen kombiniert und konfiguriert werden. Die kombinatorische Logik beschreibt die Architektur von Netzwerkfunktionen, und die Konfigurationsform beschreibt die Nachbarschaftsbeziehung von Netzwerkeinheiten, dh die Topologie bestehend aus Vermittlungszentren (oder Knoten) und Übertragungsverbindungen. Zu den gängigen Netzwerktopologien gehören Sternstruktur, Busstruktur, Ringstruktur, Baumstruktur, Netzstruktur, Hybridtopologie, Zellulartopologie usw. Die Beispiele in diesem Artikel zeigen hauptsächlich die Bustopologie, die sich in der Darstellung relativ von anderen Netzwerktopologien unterscheidet Strukturtypen sind klarer und einfacher zu zeichnen.

Obwohl der Titel Telecom Network Topology Diagram lautet, können fast alle Topologiediagramme abgedeckt werden, z. B. grundlegende Netzwerkdiagramme, Netzwerktopologiediagramme, Rackdiagramme, Netzwerkkommunikationsdiagramme, 3D-Netzwerkdiagramme usw.

Das Rendering ist wie folgt:

Von HTML5 Canvas erstelltes Telekommunikationsnetzwerk-Topologiediagramm

Dieses Bild sieht recht einfach aus, mit weniger Code, aber viel Inhalt.

Zuallererst sind Schrank 01, Schrank 02 und Schrank 03 alle ht.Group-„Gruppen“-Typen. Der ht.Group-Typ wird als übergeordneter Container zur Aufnahme untergeordneter Grundelemente in der GraphView-Topologiekarte verwendet (http://www.hightopo.com) können durch Doppelklicken erweitert und zusammengeführt werden. Die abgeleiteten Grundknoten werden während der Zusammenführung ausgeblendet Die zusammengeführte Gruppe fungiert als Proxy für die Verbindung. Die Bewegung der Gruppe führt dazu, dass die untergeordneten Knoten folgen, und die Änderungen in der Position und Größe des untergeordneten Knotens wirken sich auch auf die Erweiterungsform und -position der Gruppe aus.

Hier erwähnen wir das Problem der Agentenverbindung. Das Wort „Agent“ kann durchaus die Bedeutung der Agentenverbindung angeben. Wenn tatsächlich eine Verbindung zwischen dem Knoten innerhalb der Gruppe und dem Knoten außerhalb der Gruppe besteht, wird die Verbindung zwischen der Gruppe und dem externen Knoten beim Zusammenführen der Gruppe „vermittelt“. Nehmen wir Schrank 02 als Beispiel. Es gibt einen „Computer“ in Schrank 02 und es gibt zwei Verbindungen zwischen dem „internen Netzwerk-Switch“. Wenn wir also auf Schrank 02 doppelklicken, um ihn zusammenzuführen, entspricht dies tatsächlich Schrank 02 und dem „interner Netzwerk-Switch“. Es gibt zwei Verbindungen zwischen den Switches.

Schauen wir uns also an, wie diese Gruppe und die Knoten innerhalb der Gruppe gezeichnet werden. Erstellen Sie zunächst den Gruppenknoten von „Cabinet 02“, da ich im gesamten Beispiel drei Gruppenknoten erstellt habe Die Methoden sind ähnlich, daher wird der Code zum Erstellen von Gruppen gekapselt und wiederverwendet:

function createGroup(name, x, y) {
    var group = new ht.Group();//组类型 实际上也是一个节点    group.setExpanded(true);//设置展开组    group.setName(name);//设置组的名字    group.s({//设置组的样式style        'group.title.background': 'rgba(14,36,117,0.80)',//组展开后的title背景颜色,仅对group.type为空的类型起作用        'group.background': 'rgba(14,36,117,0.40)',//组展开后的背景颜色        'group.title.align': 'center'//组展开后的title文字水平对齐方式,默认值为'left',可设置为center和right
    });    group.setPosition(x, y);//设置组的位置    group.setImage('images/服务器.json');//设置拓扑上展现的图片信息,在GraphView拓扑图中图片一般以position为中心绘制
    dataModel.add(group);//将创建的组节点添加进数据容器中

    return group;
}

Gruppen können erweitert und zusammengeführt werden Beim Zusammenführen wird ein Feld mit einer Titelleiste angezeigt (diese kann natürlich angepasst werden). Beim Zusammenführen wird das im obigen Code festgelegte Bild angezeigt.

Alle Knoten im Schrank sind Knoten vom Typ ht.Node, daher habe ich sie auch gekapselt:

function createNode(image, parent, x, y) {
    var node = new ht.Node();//创建一个 Node 节点
    if (image) node.setImage(image);//设置节点的显示图片
    if (parent) node.setParent(parent);//设置节点的父亲
    if (x && y) node.setPosition(x, y);//设置节点的位置
    dataModel.add(node);//将节点添加进数据容器中

    return node;
}

Schrank 02 generieren:

Von HTML5 Canvas erstelltes Telekommunikationsnetzwerk-Topologiediagramm

Da für die Verbindung „Quellknoten“ und „Endknoten“ erforderlich sind, ist der Quellknoten hier der „interner Netzwerkschalter“ in der Mitte erstellen wir diesen Knoten erneut:
cabinet = createGroup('机柜02', 146, 445);//创建机柜02createNode('images/正常.json', cabinet, 78, 440).s('label', '数据监控分析系统');//创建带有“正常”图片的节点,并设置这个节点的文字为“数据监控分析系统”

Ich weiß nicht, ob Sie das haben Ich habe festgestellt, dass es ein Stilattribut von label2 gibt. Dies ist eine von HT hinzugefügte Funktion zum Hinzufügen von zwei Beschriftungstexten zu einem Knoten. Die Attribute label2 und label2 sind genau gleich, solange sie beim Festlegen durch label und label2 unterschieden werden die Attribute. Der Quellknoten und der Endknoten sind beide verfügbar, und Sie können Verbindungen erstellen:
var line = createNode();//创建一个节点line.setSize(725, 20);//设置节点大小line.setPosition(310, 325);//设置节点位置line.s({//设置节点的style属性    'shape': 'roundRect',//决定shape的形状,默认值为空,代表用image绘制。roundRect四周圆角矩形    'shape.background': 'rgba(14,36,117,0.80)',//背景填充颜色,为null代表不填充背景    'shape.border.color': '#979797',//边框颜色    'shape.corner.radius': 10,//该参数指定roundRect类型的圆角半径,默认为空系统自动调节,可设置正数值    'label': '内部网络交换机', //文字内容,默认为空    'label.position': 45,//文字内容,默认为空    'label.offset.x': 50,//文字水平偏移,对于Edge意味着沿着连线方向水平偏移    'label2': '内部网络交换机',//HT默认除了label.*的属性外,还提供了label2.*的属性,用于满足一个图元需要显示双文字的情况    'label2.position': 48,    'label2.offset.x': 50,    'label2.offset.y': 2,
});

Etwas Interessantes ist, dass im „Switch“-Teil der Der blaue quadratische Knoten ganz links und der lange Knoten in der Mitte sind nicht integriert, sondern getrennt. Ich verwende jedoch setHost, um zwischen den Knoten zu adsorbieren, und kehre dann die Adsorption zurück. Dieser Vorgang entspricht der Tatsache, dass die beiden Knoten eins sind:

var exchange = createNode('images/交换机.json', null, -53, 313);
exchange.setHost(line);//设置吸附line.setHost(exchange);//反吸附 又设置line的吸附为exchange

因为 HT 会按照节点添加进数据容器中的顺序来进行层次的排列,我的交换机是在 line 的添加之后的,所以默认交换机的节点会显示在 line 之下,我们将默认的层级显示关闭,并设置交换机 exchange 显示在数据容器的顶部:

dataModel.setAutoAdjustIndex(false);//将自动调整data在容器中索引顺序的开关关闭dataModel.sendToTop(exchange);//将data在拓扑上置顶

相关推荐:

HTML5 网络拓扑图应用实例讲解

详解HTML5网络拓扑图整合OpenLayers实现GIS地图应用(图)

HTML5网络拓扑图性能优化的图文详解

Das obige ist der detaillierte Inhalt vonVon HTML5 Canvas erstelltes Telekommunikationsnetzwerk-Topologiediagramm. 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

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

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.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

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)

Heiße Themen

PHP-Tutorial
1510
276
Wie schreibe ich eine grundlegende HTML5 -Seitenvorlage? Wie schreibe ich eine grundlegende HTML5 -Seitenvorlage? Jul 26, 2025 am 07:23 AM

Deklarieren Sie das Dokument als HTML5, um zu vermeiden, dass der Browser den seltsamen Modus eingeht. 2. Definieren Sie das Stammelement und geben Sie die Sprache an, um die Zugänglichkeit und SEO zu verbessern. 3.. Es umfasst die Gewährleistung der korrekten Charaktercodierung, die Implementierung von Responsive Design und das Einstellungsseitentitel. V. Diese Vorlage ist vollständig und kompatibel mit modernen Browsern und für jede neue HTML -Datei geeignet.

Definieren von benutzerdefinierten Vokabeln mit HTML5 Schema.org Markup. Definieren von benutzerdefinierten Vokabeln mit HTML5 Schema.org Markup. Jul 31, 2025 am 10:50 AM

Das Schema.org -Tag hilft Suchmaschinen, das strukturierte Datenformat von Webseiteninhalten über semantische Tags (z. B. Elementumfang, Elementtyp, ElementProp) zu verstehen. Es kann verwendet werden, um benutzerdefiniertes Vokabular zu definieren. Zu den Methoden gehören die Erweiterung vorhandener Typen oder die Einführung neuer Typen mithilfe von zusätzlichem Typ. In den tatsächlichen Anwendungen sind die Struktur klar, priorisieren Sie die Verwendung offizieller Attribute, die Gültigkeit des Codes und stellen sicher, dass benutzerdefinierte Typen zugänglich sind. Zu den Vorsichtsmaßnahmen gehören das Akzeptieren der teilweisen Unterstützung, die Vermeidung von Rechtschreibfehlern und die Auswahl eines geeigneten Formats wie JSON-LD.

Wie behandelt der HTML5 -Parser Fehler? Wie behandelt der HTML5 -Parser Fehler? Aug 02, 2025 am 07:51 AM

Html5ParserShandlemalformedhtmlByFollowingadeterministicalgorithMtoensureconsistandrobustrering.1.FormSatchedorunclosedTags, theparsenaautomatisch -clostagsandaditadsnestingbasedoncontext, solches asclosousableaSforeaandreopeeaandreopeeaandreopeaTreopering

Was sind HTML5 -Datenattribute? Was sind HTML5 -Datenattribute? Aug 06, 2025 pm 05:39 PM

Html5datAatttributesArecustom, validHtmlattributesusesedTostoreExtrainFormationInelementsforjavaScriptorcs.1.TheyaredefinedasData-*Attribute, LikeData-User-ID = "123" .2.

Wie zeige ich Steuerelemente für HTML5 -Video? Wie zeige ich Steuerelemente für HTML5 -Video? Jul 26, 2025 am 08:11 AM

Um die Wiedergabesteuerung von HTML5 -Videos anzuzeigen, müssen Sie das Attribut der Steuerelemente hinzufügen. 1. Fügen Sie das Attribut der Steuerelemente zum Tag hinzu, um die Standard -Wiedergabe, Pause, Lautstärke, Fortschrittsleiste, Vollbild- und andere Steuerelemente anzuzeigen. 2. Wenn Sie das Display anpassen müssen, können Sie Video.Controls dynamisch von JavaScript an true oder false festlegen. 3. Die Standardsteuerstil variiert je nach Browser und Betriebssystem. Wenn Sie die Schnittstelle vollständig anpassen müssen, müssen Sie Steuerelemente entfernen und JavaScript verwenden, um benutzerdefinierte Steuerelemente zu erstellen. Das Hinzufügen des Attributs der Steuerelemente ist der grundlegende und notwendige Schritt zur Implementierung der Wiedergabesteuerung.

H5 Cross-Origin-Isolation mit Coop und Coep H5 Cross-Origin-Isolation mit Coop und Coep Jul 26, 2025 am 03:04 AM

Wenn Sie H5-Seiten entwickeln und SharedArrayBuffer und andere Funktionen verwenden müssen, müssen Sie die Cross-Origin-Isolation festlegen. Der Schlüssel besteht darin, Coop und Coep zu konfigurieren. Coop (Cross-Origin-Opener-Policy) steuert, wie die Seite mit anderen Dokumenten interagiert, und Coep (Cross-Origin-Embder-Policy) steuert, wie die Seite externe Ressourcen lädt. Zusammen sorgen sie dafür

Was ist der Unterschied zwischen  und  in HTML5? Was ist der Unterschied zwischen und in HTML5? Aug 04, 2025 am 11:02 AM

Bitte klären Sie die beiden HTML5 -Elemente oder -attribute, die Sie vergleichen möchten, z.

Wie füge ich mit HTML5 ein Bild zu einer Webseite hinzu? Wie füge ich mit HTML5 ein Bild zu einer Webseite hinzu? Jul 27, 2025 am 02:46 AM

Die Kernmethode zum Hinzufügen von Bildern zu einer Webseite besteht darin, Tags zu verwenden und die erforderlichen Attribute anzupassen. Verwenden Sie zunächst selbstlosen Tags und geben Sie den Bildpfad durch das SRC-Attribut an und geben Sie einen alternativen Text an. Zweitens klicken Sie durch das Tag, um das Bild zu wickeln. Zweitens verwenden Sie HTML5 neue Tags, um das Bild und den Titel anzuzeigen. Zusätzlich können Sie Breite, Höhe einstellen oder CSS verwenden, um die Bildgröße zu steuern, und verwenden Sie loading = "Lazy", um eine faule Laden zu erzielen, um die Leistung zu optimieren.

See all articles