Heim Web-Frontend H5-Tutorial html5 Canvas-Zeichen-Tutorial (3) – Der Grund, warum 1-Pixel-Linien in den Canvas_html5-Tutorial-Fähigkeiten unscharf sind

html5 Canvas-Zeichen-Tutorial (3) – Der Grund, warum 1-Pixel-Linien in den Canvas_html5-Tutorial-Fähigkeiten unscharf sind

May 16, 2016 pm 03:50 PM
canvas 模糊

Fortsetzung des vorherigen Artikels Tutorial zum Zeichnen von Linien auf Leinwand
Wie wir letztes Mal erwähnt haben, weist die Leinwand manchmal 1-Pixel-Linien auf, die unscharf sind und breiter erscheinen, wie unten gezeigt:

Eine solche Linie ist offensichtlich nicht das, was wir wollen.
Der Zweck dieses Artikels besteht darin, das Prinzip zu klären und zu lösen.
Jeder weiß, dass die kleinste Anzeigegröße auf dem Bildschirm 1 Pixel beträgt. Obwohl Dinge, die kleiner als 1 Pixel sind, möglicherweise nicht angezeigt werden, ist es dem Computer egal, er wird versuchen, sie zu zeichnen.
Tatsächlich sind Pixel schließlich auch eine Einheit. Was würde passieren, wenn wir die Leinwand auf eine Größe vergrößern würden, die groß genug ist, um jedes Pixel deutlich zu sehen? Es sieht wahrscheinlich so aus:


Jedes Pixel hat einen Start- und einen Endbereich, wie in der Abbildung gezeigt. Ihr Bereich beginnt links, erstreckt sich über 1 Pixel und endet rechts.
Wenn wir beim Zeichnen einer 1-Pixel-Linie den Anfangs- und Endbereich der Pixel beachten, erhalten wir auf jeden Fall eine ganz normale dünne Linie. Wie folgt:


Aber leider ist die Strichzeichnungsmethode der Leinwand anders. Wie wir im vorherigen Artikel gesagt haben, hat jede Leinwandlinie eine unendlich dünne „Mittellinie“, und die Breite der Linie erstreckt sich von der Mittellinie zu beiden Seiten. Wenn wir immer noch eine Linie vom zweiten Pixel zeichnen, wird die Mittellinie der Linie am Startpunkt des zweiten Pixels ausgerichtet, und dann beginnen wir mit dem Zeichnen und es entsteht das Problem: Die Linie der Leinwand erstreckt sich auf beide Seiten Anstatt sich von der Mittellinie aus zu einer bestimmten Seite zu erstrecken (wenn sie sich hier beispielsweise nur nach rechts erstreckt, ist unser Problem kein Problem mehr), sieht unsere Linie nach der Verlängerung tatsächlich so aus:


Zu diesem Zeitpunkt gab es ein weiteres Problem: Der Computer erlaubt keine Grafiken, die kleiner als 1 Pixel sind, also ging er einen Kompromiss ein: Zeichnen Sie beide Pixel.
Auf diese Weise wird die ursprüngliche 1-Pixel-Linie zu einer Linie, die 2 Pixel breit aussieht.
Der Grund für den Fehler wurde gefunden: Die Linie im Canvas richtete die Mittellinie am Startpunkt des Pixels aus, nicht am Mittelpunkt des Pixels.
Wie lösen wir also dieses schmerzhafte Problem? Vielleicht hat sich schon jemand gedacht: Da die Ausgangspunkte der beiden unterschiedlich sind, machen wir ihre Ausgangspunkte gleich!
Wir müssen nur die Mittellinie der Linie am Mittelpunkt des Pixels ausrichten!
Der Mittelpunkt des Pixels ist leicht zu finden. Beispielsweise liegt der Mittelpunkt des zweiten Pixels gemäß der Erklärung auf dem Bild bei (x-0,5). )px.


Natürlich können Sie in weniger strengen Situationen auch x 0,5 verwenden.
Jetzt probieren wir unsere Forschungsergebnisse auf Leinwand aus.

Code kopieren
Der Code lautet wie folgt:

ctx.moveTo(100.5, 100,5);
ctx.lineTo(200,5,100,5);
ctx.lineTo(100,5,200,5); ;
ctx.closePath();
ctx.lineWidth = 1;
ctx.StrokeStyle = 'rgba(255,0,0,0.5)'; >




Sieht richtig aus?

Aber es scheint, dass uns das beim Zeichnen der Grenze sehr verwirrt. Müssen wir jedes Mal diese deprimierenden 0,5 hinzufügen? Natürlich nicht, denn die meiste Zeit, in der wir Variablen zum Speichern von Werten verwenden, müssen wir nicht zu jedem Wert 0,5 hinzufügen Darüber hinaus müssen wir uns bei Zeilen mit lineWidth>1 darüber keine Sorgen machen: weil Nur wenn die Linienbreite 1 Pixel beträgt, ist dieses Problem am offensichtlichsten.

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)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
4 Wochen 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 verwischen Sie Fotos mit der Yitian-Kamera So verwischen Sie Fotos mit der Yitian-Kamera Feb 23, 2024 pm 06:40 PM

Sie können die Fotos in Yitian Camera verwischen. Wie kann man die Fotos verwischen? Benutzer können auf „Bearbeiten“ klicken, um ein Foto auszuwählen, dann auf „Effekte“ klicken und „Unschärfe“ auswählen, um das Foto unscharf zu machen. Diese Einführung zum Verwischen von Fotos kann Ihnen den spezifischen Inhalt erklären. Im Folgenden finden Sie eine detaillierte Einführung. Schauen Sie sich das an! Anleitung zur Verwendung der Yitian-Kamera. Antwort: Gehen Sie zu Bearbeiten-Spezialeffekte-Unschärfe: 1. Öffnen Sie zuerst die App und klicken Sie unten links auf Bearbeiten. 2. Klicken Sie dann auf ein Bild und dann auf die Schaltfläche „Bearbeiten“. 3. Klicken Sie dann unten auf die Schaltfläche „Spezialeffekte“. 4. Die Unschärfefunktion finden Sie unten. 5. Wählen Sie dann die Vergrößerung der Unschärfe aus.

So lösen Sie das Problem verschwommener Hintergrundbilder in Win11 So lösen Sie das Problem verschwommener Hintergrundbilder in Win11 Jan 02, 2024 pm 09:05 PM

Manchmal ist das Hintergrundbild bei Verwendung von Win11 unscharf. Ich weiß nicht, was los ist. Tatsächlich können wir das Problem lösen, indem wir die Registrierung oder die Anwendungskompatibilität ändern. Lösung für die Unschärfe des Hintergrundbilds unter Win11: 1. Desktop-Unschärfe 1. Wenn der Desktop unscharf ist, können Sie mit der rechten Maustaste auf das untere Startmenü klicken und „Ausführen“ öffnen. 2. Geben Sie dann „regedit“ ein und drücken Sie die Eingabetaste, um die Registrierung zu öffnen. 3. Gehen Sie nach dem Öffnen zum Speicherort „Computer\HKEY_CURRENT_USER\ControlPanel\Desktop“. 4. Klicken Sie nach der Eingabe mit der rechten Maustaste auf die leere Stelle und wählen Sie „Neuen „DWORD-Wert“ erstellen“. 5. Benennen Sie ihn in „JPEGImportQuality“ um und doppelklicken Sie, um die Daten zu öffnen.

Was sind die Canvas-Pfeil-Plug-ins? Was sind die Canvas-Pfeil-Plug-ins? Aug 21, 2023 pm 02:14 PM

Zu den Canvas-Pfeil-Plugins gehören: 1. Fabric.js, das über eine einfache und benutzerfreundliche API verfügt und benutzerdefinierte Pfeileffekte erstellen kann. 2. Konva.js, das die Funktion zum Zeichnen von Pfeilen bietet und verschiedene Pfeile erstellen kann 3. Pixi.js, das umfangreiche Grafikverarbeitungsfunktionen bietet und verschiedene Pfeileffekte erzielen kann; 4. Two.js, das auf einfache Weise Pfeilstile und Animationen erstellen und steuern kann; 6. Grobe .js, Sie können handgezeichnete Pfeile usw. erstellen.

Was sind die Details der Leinwanduhr? Was sind die Details der Leinwanduhr? Aug 21, 2023 pm 05:07 PM

Zu den Details der Leinwanduhr gehören das Aussehen der Uhr, Teilstriche, Digitaluhr, Stunden-, Minuten- und Sekundenzeiger, Mittelpunkt, Animationseffekte, andere Stile usw. Ausführliche Einführung: 1. Erscheinungsbild der Uhr: Sie können mit Canvas ein kreisförmiges Zifferblatt als Erscheinungsbild der Uhr zeichnen und die Größe, Farbe, den Rand und andere Stile des Zifferblatts festlegen. 2. Skalenlinien: Zeichnen Sie Skalenlinien ein 3. Digitaluhr: Sie können eine Digitaluhr auf das Zifferblatt zeichnen, um die aktuelle Stunde und Minute anzuzeigen.

Welche Versionen von html2canvas gibt es? Welche Versionen von html2canvas gibt es? Aug 22, 2023 pm 05:58 PM

Zu den Versionen von html2canvas gehören html2canvas v0.x, html2canvas v1.x usw. Detaillierte Einführung: 1. html2canvas v0.x, eine frühe Version von html2canvas. Die neueste stabile Version ist v0.5.0-alpha1. Es handelt sich um eine ausgereifte Version, die in vielen Projekten weit verbreitet und verifiziert wurde. 2. html2canvas v1.x, dies ist eine neue Version von html2canvas.

Welche Eigenschaften hat Tkinter Canvas? Welche Eigenschaften hat Tkinter Canvas? Aug 21, 2023 pm 05:46 PM

Zu den Tkinter-Canvas-Attributen gehören BG, BD, Relief, Breite, Höhe, Cursor, Highlightbackground, Highlightcolor, Highlightthickness, Insertbackground, Insertwidth, Selectbackground, Selectforeground, XScrollcommand-Attribute usw. Ausführliche Einführung

uniapp implementiert die Verwendung von Canvas zum Zeichnen von Diagrammen und Animationseffekten uniapp implementiert die Verwendung von Canvas zum Zeichnen von Diagrammen und Animationseffekten Oct 18, 2023 am 10:42 AM

Für die Verwendung von Canvas zum Zeichnen von Diagrammen und Animationseffekten in Uniapp sind bestimmte Codebeispiele erforderlich. 1. Einführung Mit der Beliebtheit mobiler Geräte müssen immer mehr Anwendungen verschiedene Diagramme und Animationseffekte auf dem mobilen Endgerät anzeigen. Als plattformübergreifendes Entwicklungsframework auf Basis von Vue.js bietet uniapp die Möglichkeit, Canvas zum Zeichnen von Diagrammen und Animationseffekten zu verwenden. In diesem Artikel wird vorgestellt, wie Uniapp Canvas verwendet, um Diagramm- und Animationseffekte zu erzielen, und es werden spezifische Codebeispiele gegeben. 2. Leinwand

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

See all articles