HTML Canvas: Wo ist mein Fehler?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Wenn du mit CSS die Größe des Canvas setzt, dann gibt es Skalierungsprobleme. Du musst diese direkt auf dem Element setzen. So:

https://jsfiddle.net/jumq1b7r/

MrAmazing2 
Fragesteller
 02.04.2021, 23:27

Achsoooo, ich dachte per Style-Tag. Hatte das falsch in Erinnerung.

Danke dir :D

1
HansImGlueck178  02.04.2021, 23:29
@MrAmazing2

Geht gleichzeitig auch, wenn du das Canvas-Element nochmal unabhängig von seiner internen Fläche skalieren willst. Die ist standardmäßig aber 150 mal 300 Pixel, also rechteckig. Mit CSS änderst du nur, wie diese 150 mal 300 Pixel angezeigt werden (sie werden also gestaucht und gestreckt).

2

Witzig... aber so gehts

const canvas = document.getElementById("screen");
const ctx = canvas.getContext("2d");

ctx.fillStyle = "green";
ctx.fillRect(0, 0, 80, 40);
Woher ich das weiß:eigene Erfahrung
MrAmazing2 
Fragesteller
 02.04.2021, 23:26

Stimmt. Ist mir auch aufgefallen.

0,0 ist x und y.

Und 80, 80 sind Breite und Höhe. Sollte doch Quadratisch sein, ich verstehs nicht :D

1