


Was ich heute mit Ihnen teile, ist das vordefinierte 3D-Modell der 3D-Serie.
HT for Web bietet Benutzern eine Vielzahl von Grundtypen zur Modellierung. Im Gegensatz zu herkömmlichen 3D-Modellierungsmethoden basiert die Kernmodellierung von HT auf vordefinierten API-Schnittstellenmethoden Typen und Parameterschnittstellen können eingestellt werden, um die Konstruktion von 3D-Modellen zu erreichen. Lassen Sie uns als Nächstes über vordefinierte 3D-Modelle und Parametereinstellungen sprechen.
HT vordefinierte 3D-Modelle umfassen: Quader, Kugel, Kegel, Torus, Zylinder, Stern, Rechteck, RundRect, Dreieck, enges Dreieck, Parallelogramm und Trapez. Wie werden dann die zwölf Typen festgelegt? ?
Auf den 2D-Grafiken des Netzwerktopologiediagramms GraphView wird die Darstellung verschiedener Grafiken durch das Shape-Attribut im Stil bestimmt. HT bietet das Shape3d-Attribut, um eine Vielzahl von 3D-Formen vorzudefinieren 3D. Der Standardwert des Shape3d-Attributs ist undefiniert und das Grundelement wird als sechsseitige kubische Form angezeigt. Wenn Shape3d einen Wert angibt, wird er als die von Shape3d angegebene Form angezeigt eins nach dem anderen.
1. Box: Anders als beim Standard-Hexaeder können die sechs Flächen des Würfeltyps nur die gleiche Farbe und Textur sowie die gleiche Zeichenleistung haben ist höher als das Standardhexaeder
Wie im Bild oben gezeigt, ist die linke Seite auf „Shape3D“ und die rechte Seite auf „Box“ eingestellt. Bei beiden Knoten sind Texturen für die obere Oberfläche festgelegt, aber vom Effekt her der Knoten Wenn „Shape3d“ auf „Box“ eingestellt ist, wird die Textureinstellung der oberen Oberfläche direkt ignoriert. Dies bestätigt auch die obige Beschreibung. Die Farbe und Textur der sechs Seiten des Boxtyps können nur gleich sein und funktionieren nur für „Shape3d.image“ und „Box“. shape3d.color. Das Folgende ist der spezifische Einstellungscode:
node = new ht.Node(); node.s3(80, 80, 80); node.s({ 'shape3d': 'box', 'shape3d.image': 'img11', 'shape3d.top.image': 'img10'}); dm.add(node); node = new ht.Node(); node.s3(80, 80, 80); node.p3(100, 0, 0); node.s({ 'all.image': 'img11', 'top.image': 'img10'}); dm.add(node);
2. side. Durch die Kombination von shape3d.side.from und shape3d.side.to kann eine Halbkugel usw. gebildet werden.
Wie im Bild oben gezeigt, wurde ein Teil des Balls abgeschnitten. Die beiden Seiten des Schnitts können separat gesteuert werden Parametersätze: shape3d.from.* und shape3d.to.* Im Bild oben verstecke ich die to-Seite durch shape3d.to.visible. Jetzt wird eine neue Textur auf der from-Oberfläche durch shape3d.from.image festgelegt . Der spezifische Code lautet wie folgt:
node.s({ 'shape3d': 'sphere', 'shape3d.image': 'img11', 'shape3d.side': 100, 'shape3d.side.from': 0, 'shape3d.side.to': 65, 'shape3d.from.image': 'img10', 'shape3d.to.visible': false});
3. Verwenden Sie shape3d.side, um Dreieckspyramiden, viereckige Pyramiden und andere Formen zu bilden
Wie Sie auf dem Bild oben sehen können, desto größer Je größer der Seitenwert, desto glatter ist der Kegelkörper, der mit einem Kegel verglichen werden kann. Schauen wir uns den Code an, wie man ihn konkret einrichtet:
[3, 4, 5, 6, 10, 20, 40, 80, 100].forEach(function(side, index) { var x = ((index / 3) >> 0) * 100 - 100, y = index % 3 * 100 - 100; node = new ht.Node(); node.p3(x, 40, y); node.s3(80, 80, 80); node.s({ 'shape3d': 'cone', 'shape3d.image': 'img11', 'shape3d.side': side, 'note': 'side: ' + side, 'note.autorotate': true, 'note.position': 17, 'note.face': 'top', 'note.background': '#979EAF' }); dm.add(node); });
Natürlich kann der Kegel auch derselbe sein wie die Kugel, die man einstellen kann shape3d.side.from und shape3d.side Der Parameter „.to“ wird zur Steuerung des Zuschneidens verwendet; die Parameter „shape3d.from.*“ und „shape3d.to.*“ können auch zur Steuerung der Leistung der beiden Oberflächen verwendet werden; * Der Stil kann auch zur Steuerung der Leistung des Kegelbodens verwendet werden.
Im obigen Code können Sie die notizbezogenen Einstellungen sehen. Im Übrigen wird der note.autorotate-Stil verwendet, um die Ausrichtung der Notiz zu steuern Diese Notiz zeigt immer in die Richtung des Auges, unabhängig davon, wie die Szene gedreht wird.
4. Ein Torus, der durch die Kombination von shape3d.side.from und shape3d.side.to in mehrere Teile geteilt werden kann -Kreisring usw.
Wie Sie in sehen können Im Bild oben ist der Ring tatsächlich derselbe wie der Kegel. Sie können auch die Anzahl der Seiten festlegen, um dreieckige Ringe, viereckige Ringe und andere Formen zu bilden glatter wird der Ring sein.
在上图中可以看到 note 中多加了一个 radius 值的打印,这个值对应的是样式中的 shape3d.torus.radius,那么这个值的作用是什么呢,我想从上图也可以看得出来,radius 值是用来控制圆环的半径,但是为什么 radius 为 0.25 的时候圆环中间就被填上了,没有像其他的圆环中间都漏空呢?我们可以这样理解,一个圆环的切面有两个圆环直径,那就有四个圆环半径,那按百分比去计算的话,一个半径就是占整个图元宽的 1/4,也就是 0.25,所以这个 shape3d.torus.radius 样式的取值范围为 0~0.25。
[3, 4, 5, 6, 10, 20, 40, 80, 100].forEach(function(side, index) { var x = ((index / 3) >> 0) * 100 - 100, y = index % 3 * 100 - 100; radius = (Math.random() * 0.25).toFixed(2); node = new ht.Node(); node.p3(x, 40, y); node.s3(80, 80, 80); node.s({ 'shape3d': 'torus', 'shape3d.image': 'img11', 'shape3d.side': side, 'shape3d.torus.radius': radius, 'note': 'side: ' + side + ', radius: ' + radius, 'note.autorotate': true, 'note.position': 17, 'note.face': 'top', 'note.background': '#979EAF' }); dm.add(node); });
5. cylinder:圆柱,可通过 shape3d.top.* 和 shape3d.bottom.* 可控制顶面和底面的参数
圆柱的参数除了 shape3d.top.* 之外,其他的都和前面提到的圆锥的参数一样,因为圆柱体其实就是比圆锥体多了一个面。
[3, 4, 5, 6, 10, 20, 40, 80, 100].forEach(function(side, index) { var x = ((index / 3) >> 0) * 100 - 100, y = index % 3 * 100 - 100; node = new ht.Node(); node.p3(x, 40, y); node.s3(80, 80, 80); node.s({ 'shape3d': 'cylinder', 'shape3d.image': 'img11', 'shape3d.side': side, 'note': 'side: ' + side, 'note.autorotate': true, 'note.position': 17, 'note.face': 'top', 'note.background': '#979EAF' }); dm.add(node); });
到这里所有的可裁切的基本模型都介绍完了,下面要介绍的几个基本模型就没有 side 的相关属性了,也就意味着,它们将没有 from 和 to 的相关参数,没有裁切的功能。
如果想让不能裁切的基本图元达到裁切的效果,还是有其他方案和方法的,这些,我们就在后续的章节中介绍,还望耐心等待。
6. star:星形体,可通过 shape3d.top.* 和 shape3d.bottom.* 可控制顶面和底面的参数
7. rect:矩形体,可通过 shape3d.top.* 和 shape3d.bottom.* 可控制顶面和底面的参数
8. roundRect:圆矩形体,可通过 shape3d.top.* 和 shape3d.bottom.* 可控制顶面和底面的参数
9. triangle:三角形体,可通过 shape3d.top.* 和 shape3d.bottom.* 可控制顶面和底面的参数
10. rightTriangle:直角三角形体,可通过 shape3d.top.* 和 shape3d.bottom.* 可控制顶面和底面的参数
11. parallelogram:平行四边形体,可通过 shape3d.top.* 和 shape3d.bottom.* 可控制顶面和底面的参数
12. trapezoid:梯形体,可通过 shape3d.top.* 和 shape3d.bottom.* 可控制顶面和底面的参数
上图就是几个还未介绍的基本模型。
[ 'star', 'rect', 'roundRect', 'triangle', 'rightTriangle', 'parallelogram', 'trapezoid'].forEach(function(shape, index) { var x = index * 100 - 300; node = new ht.Node(); node.p3(x, 40, 0); node.s3(80, 80, 80); node.s({ 'shape3d': shape, 'shape3d.image': 'img11' }); dm.add(node); });
仔细观察上图,你会发现,从左算起,第二个和第四个好像在前面的例子中有见过。没错,在形状上是一样的,但是在表现上却是有些差异,到底存在什么差异呢,我们通过图来瞧瞧。
左边是基本模型 rect 和 triangle,右边是通过基本模型 cylinder 模拟出来的 rect 和 triangle,四个图元设置的大小都是一样的,边长都是 80,可以发现基本模型 rect 和 triangle 在表现上会比通过 cylinder 模拟出来的 rect 和 triangle 来的大些,原因很简单,通过 cylinder 模拟出来的 rect 和 triangle 因为其本质还是圆柱体,side 参数是是让图形能够更接近圆形而已,所以绘制出来的图形将会是在一个圆柱体内,也就是 rect 基本模型上表面的内切圆范围内,也就是说通过 cylinder 模拟出来的 rect 上表面的对角线才是图元的变成 80。
以下是相关代码,大家可以尝试下,通过不同角度的观察,可能会更好理解一些。
node = new ht.Node(); node.s3(80, 80, 80); node.p3(-50, 40, 50); node.s({ 'shape3d': 'cylinder', 'shape3d.side': 4, 'shape3d.image': 'img11'}); dm.add(node); node = new ht.Node(); node.s3(80, 80, 80); node.p3(50, 40, 50); node.s({ 'shape3d': 'cylinder', 'shape3d.side': 3, 'shape3d.image': 'img11'}); dm.add(node); node = new ht.Node(); node.s3(80, 80, 80); node.p3(-50, 40, -50); node.s({ 'shape3d': 'rect', 'shape3d.image': 'img11'}); dm.add(node); node = new ht.Node(); node.s3(80, 80, 80); node.p3(50, 40, -50); node.s({ 'shape3d': 'triangle', 'shape3d.image': 'img11'}); dm.add(node);
Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in den Grafik- und Textcode zum Erstellen von 3D-Szenen basierend auf der HTML5-WebGL-Technologie (1). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Zu den Tools und Frameworks, die in der H5 -Entwicklung gemeistert werden müssen, gehören Vue.js, React und WebPack. 1.Vue.js eignet sich zum Erstellen von Benutzeroberflächen und unterstützt die Komponentenentwicklung. 2. Die Rendern des Seitenrenders über virtuelle DOM optimiert, geeignet für komplexe Anwendungen. 3.Webpack wird zur Modulverpackung und zur Optimierung der Ressourcenlast verwendet.

HTML5hassignificantlytransformedwebdevelopmentbyintroducingsemanticelements,enhancingmultimediasupport,andimprovingperformance.1)ItmadewebsitesmoreaccessibleandSEO-friendlywithsemanticelementslike,,and.2)HTML5introducednativeandtags,eliminatingthenee

H5 verbessert die Zugänglichkeits- und SEO -Effekte der Webseiten durch semantische Elemente und Aria -Attribute. 1. Verwendung usw., um die Inhaltsstruktur zu organisieren und SEO zu verbessern. 2. ARIA-Attribute wie ARIA-Label verbessern die Zugänglichkeit, und assistive Technologie-Benutzer können Webseiten reibungslos verwenden.

"H5" und "HTML5" sind in den meisten Fällen gleich, haben jedoch möglicherweise unterschiedliche Bedeutungen in bestimmten Szenarien. 1. "HTML5" ist ein W3C-definierter Standard, der neue Tags und APIs enthält. 2. "H5" ist normalerweise die Abkürzung von HTML5, kann jedoch in der mobilen Entwicklung auf ein auf HTML5 basierendes Framework verweisen. Das Verständnis dieser Unterschiede trägt dazu bei, diese Begriffe in Ihrem Projekt genau zu verwenden.

H5 oder HTML5 ist die fünfte Version von HTML. Es bietet Entwicklern ein stärkeres Toolset, so dass es einfacher ist, komplexe Webanwendungen zu erstellen. Die Kernfunktionen von H5 umfassen: 1) Elemente, mit denen Grafiken und Animationen auf Webseiten zeichnen können; 2) semantische Tags wie usw., um die Webseitenstruktur klar und förderlich für die SEO -Optimierung zu machen; 3) neue APIs wie GeolocationAPI unterstützen standortbasierte Dienste; 4) Die Kompatibilität des Cross-Browsers muss durch Kompatibilitätstests und Polyfill-Bibliothek gewährleistet werden.

Wie erstelle ich einen H5 -Link? Bestimmen Sie das Linkziel: Holen Sie sich die URL der H5 -Seite oder -Anwendung. Erstellen Sie HTML -Anker: Verwenden Sie das & lt; a & gt; Tag, um einen Anker zu erstellen und die Link -Ziel -URL anzugeben. Link -Eigenschaften festlegen (optional): Setzen Sie nach Bedarf Ziel-, Titel- und Onclick -Eigenschaften. Zu der Webseite hinzufügen: Hinzufügen von HTML -Ankercode zur Webseite, auf der der Link angezeigt werden soll.

Zu den Lösungen für H5 -Kompatibilitätsprobleme gehören: Verwenden von Responsive Design, mit dem Webseiten Layouts entsprechend der Bildschirmgröße anpassen können. Verwenden Sie Cross-Browser-Test-Tools, um die Kompatibilität vor der Freigabe zu testen. Verwenden Sie Polyfill, um neue APIs für ältere Browser zu unterstützen. Befolgen Sie die Webstandards und verwenden Sie effektive Code und Best Practices. Verwenden Sie CSS -Präprozessoren, um den CSS -Code zu vereinfachen und die Lesbarkeit zu verbessern. Optimieren Sie die Bilder, reduzieren Sie die Größe der Webseiten und beschleunigen Sie das Laden. Aktivieren Sie HTTPS, um die Sicherheit der Website zu gewährleisten.

H5 -Seiten können Links auf zwei Arten generieren: Links manuell erstellen oder kurze Linkdienste verwenden. Durch manuelles Erstellen müssen Sie nur die URL der H5 -Seite kopieren. Durch den kurzen Link -Service müssen Sie die URL in den Service einfügen und dann die verkürzte URL erhalten.


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

mPDF
mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version

Dreamweaver Mac
Visuelle Webentwicklungstools

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

DVWA
Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software