Grundlegendes Zeichnen
XML/HTML-CodeInhalt in die Zwischenablage kopieren
- var canvas = document.getElementById('canvas'); >
if (canvas.getContext) { -
var -
context = canvas.getContext('2d');
// Linienbreite
-
context.lineWidth-
= 4;
// Pinselfarbe
-
context.StrokeStyle-
= 'red';
// Füllfarbe
-
context.fillStyle-
= "red";
// Linienkappentyp
-
context.lineCap-
= 'butt'; // rund, eckig
// Startpfad
- context.beginPath();
- // Ausgangspunkt
- context.moveTo(10,10);
- // Endpunkt
- context.lineTo(150,50);
- // Zeichnen
- context.Stroke();
- }
-
Rechteck
XML/HTML-Code
Inhalt in die Zwischenablage kopieren
var
- canvas = document.getElementById('canvas'); >
if (canvas.getContext) {
context.beginPath(); -
context.strokeRect(10,10,70,40); -
// Eine andere Art von Rechteck -
context.rect(10,10.70,40); -
context.Stroke(); -
-
// ausgefülltes Rechteck -
context.beginPath(); -
context.fillRect(10,10,70,40); -
// Eine andere Möglichkeit, ein durchgezogenes Rechteck zu sein -
context.beginPath(); -
context.rect(10,10,70,40); -
context.fill(); -
} -
-
Rund
XML/HTML-CodeInhalt in die Zwischenablage kopieren
- var canvas = document.getElementById('canvas'); >
if (canvas.getContext) { -
context.beginPath(); -
// Kreismittelpunktskoordinate x, Kreismittelpunktkoordinate Y, Bogenradius, Startwinkel, Endwinkel, ob gegen den Uhrzeigersinn -
// Der vierte und fünfte Parameter sind die einzugebenden Bogenmaße. Wenn Sie einen Winkel von 30 zeichnen, müssen Sie ihn in Bogenmaß 30 * Math.PI / 180 - umrechnen
context.arc(100,100,70,0,130 * Math.PI / 180, true); -
context.Stroke(); -
context.fill(); -
} -
Abgerundete Ecken
XML/HTML-Code
Inhalt in die Zwischenablage kopieren
- var canvas = document.getElementById('canvas'); >
if (canvas.getContext) {
- context.beginPath();
- context.moveTo(20,20);
- context.lineTo(70,20);
- // Bogen zeichnen p1.x p1.y p2.x, p2.y Bogenradius für einen Pfad,
- context.arcTo(120,30,120,70, 50);
context.lineTo(120,120); -
context.Stroke(); -
-
// Leinwand-Zeichenfläche löschen -
context.beginPath(); -
context.fillRect(10,10,200,100); -
-
// Bereich löschen -
context.clearRect(30,30,50,50); -
} -
-
Quadratische Bézier-Kurve
XML/HTML-CodeInhalt in die Zwischenablage kopieren
var
canvas
- = document.getElementById('canvas'); >
if (canvas.getContext) {
context.beginPath();
- context.moveTo(100,100);
- context.quadraticCurveTo(20,50,200,20);
context.Stroke(); -
} -
-
Kubische Bézier-Kurve-
XML/HTML-Code
Inhalt in die Zwischenablage kopieren
- var canvas = document.getElementById('canvas');
- if (canvas.getContext) {
- context.moveTo(68,130);
-
var cX1 = 20;
-
var cY1 = 10;
-
var cX2 = 268;
-
var cY2 = 10;
-
var endX = 268;
-
var endY = 170;
- context.bezierCurveTo(cX1, cY1, cX2, cY2, endX, endY);
- context.Stroke();
-
-
// 利用clip指定绘图区域,指定绘图区域之后,只能在绘图区域中进行绘图擦欧总>
- // 绘制圆形
- context.arc(100,100,40,0, 360 * Math.PI/ 180 , true);
- // 限制区域
- context.clip();
- // 开始尝试绘制其他
- context.beginPath();
- context.fillStyle = 'lightblue';
- // 结果矩形并没有显示出来
- context.fillRect(0,0,300,150);
- }
画板进阶使用
XML/HTML-Code
复制内容到剪贴板
- var canvas = document.getElementById('canvas'); >
if (canvas.getContext) { -
var -
context = canvas.getContext('2d');
/*
- * drawImage(image,dx,dy)
- * drawImage(image,dx,dy,dw,dh)
- * drawImage(image,sx,sy,sw,sh,dx,dy,dw,dh);
* Bildzeichnungsobjekt -
* Koordinaten der DX-Dy-Leinwand -
* dw, dh gibt die Position des Bildes auf der Leinwand an, das gezeichnet werden soll -
* sw, sh stellt den zu zeichnenden Bildbereich dar -
* sx,sy Die Startposition der zu zeichnenden Zeichnung -
*/ -
var - image
= -
document.getElementById('img');
context.drawImage(image, 0, 0);
var
img- =
new-
Image();
img.src =
'images/1.jpg'-
;
img.onload =
Funktion-
(){
// drawImage
// Beginnen Sie mit dem Zeichnen bei 0,0-Koordinaten -
// context.drawImage(img,0,0); -
// Beginnend bei 0, 0, zeichnen Sie das gesamte Bild auf 100.100 Länge und Breite -
// context.drawImage(img, 0, 0, 100, 100); -
// Screenshot, 50,50 bis 100.100. Beginnen Sie mit dem Zeichnen bei 260.130 und platzieren Sie es im 100.100-Längen- und Breitenbereich
- // context.drawImage(img, 50, 50, 100,100, 260, 130, 100, 100);
-
// Verwenden Sie getImageData und putImageData, um Bilder zu zeichnen -
-
context.drawImage(img, 10, 10); -
// Pixeldaten von der Zeichenfläche abrufen -
// Startposition, Endposition -
var - imgData
= - context
.getImageData(50,50,100,100); - // Zeichnen Sie die Daten zu den angegebenen Positionskoordinaten auf dem Zeichenbrett
- context.putImageData(imgData,10,260);
// Einen Teil der Pixeldaten auf das Zeichenbrett zeichnen -
context.putImageData(imgData,200,260,50,50,100,100);
-
// createImageData Pixel erstellen -
var - imgData
= -
context.getImageData(50,50,200,200);
// Erstellt ein leeres Objekt der angegebenen Größe
var - imgData01
= -
context.createImageData(imgData);
für (
i- =
0-
; i < imgData01.width * imgData01.height * 4; i =4) {
// Rote Pixel
imgData01.data[i 0] = 255;
imgData01.data[i 1] = 0;
- imgData01.data[i 2] = 0;
imgData01.data[i 3] = 255;
-
- context.putImageData(imgData01, 10, 260);
- }
- }
-