html 학습canvas
html 학습canvas
기본 기능
var canvas = document.getElementById("homework");
var context = canvas.getContext("2d");
moveTo(x,y)
드로잉 커서 조정lineTo(x,y)
선분을 (x, y)strokeStyle // :"F00","FF0000","rgb(255,0,0,1)",red
lineWidth // ,
lineCap // "butt","round","square"
lineJoin // "miter","round","bevel"
lineDash() // [ , ]
font //( )( ) "30px "
font // ( ) "lighter 30px " "normal" "bold" "bolder"
font // "normal" "italic" "oblique"
textAlign // "start" "end" "left" "right" "center"
textBaseline// "alphabetic""top""bottom""middle""hanging""ideographic"
measureText(Text)//
stroke()
스플라인 또는 fill()
채우기javascript
fillStyle
<!DOCTYPE HTML>
<HTML> <head> <title>canvas</title> </head> <body> <canvas id="homework" width="200" height = "200" style="border:solid 1px #CCC;"></canvas> <script type="text/javascript"> var canvas = document.getElementById("homework"); var context = canvas.getContext("2d"); // function close() { context.beginPath();// context.moveTo(10, 10); context.lineTo(180, 90); context.lineTo(20, 80); context.closePath();// context.fillStyle="red"; context.fill();// } // ... function writing(words) { //(text,x,y,maxWidth) context.font = "30px Arial"; context.fillText(words , 10, 75);// context.strokeText(words, 10, 150);// } //// (x,y,width,height) function rect() { context.rect(20,20,150,80); context.stroke(); context.strokeRect(20, 20, 60, 80); context.fillRect(30, 30, 150, 100); context.clearRect(50, 50, 80, 50)// } // function Arc(){ var pi = Math.PI; var degToRad = pi/180; //arc(x,y,radius,startAngle,endAngle,antiClockwise); context.arc(100,70,50,0,90*degToRad,true); context.fill(); } </script> </body> </HTML>
고급 기능
context.drawImage(image, dx, dy, dw, dh)
context.drawImage(image,sourceX,sourceY,sourceWidth,sourceHeight,dx,dy,dw,dh);
var image = new Image();
image.src = "http://211.66.128.178/picSrc/ / .png";//
image.onload = function(){
context.drawImage(image,50,50);
}
var imageData = context.createImageData(100, 100); // ( , )( )
context.drawImage(image, 10, 10);
var imageData = context.getImageData(10, 10, 201, 146);// (x,y, , )
for (var i = 0; i < 201 * 146 * 4; i += 4) {
imageData.data[i] = 255 - imageData.data[i];
imageData.data[i + 1] = 255 - imageData.data[i + 1];
imageData.data[i + 2] = 255 - imageData.data[i + 2];
}
context.putImageData(imageData, 230, 10);// ( , )
context.translate(x, y);//
context.transform(1, 0, 0, 1, x, y);
context.rotate(angle);//
context.transform(cos30, sin30, -sin30, cos30, 1, 1);
//
context.strokeRect(50, 50, 150, 100);
var degToRad = Math.PI / 180;
context.translate(125, 100); //
context.rotate(45 * degToRad);//
context.translate(-125, -100);//
context.strokeRect(50, 50, 150, 100);
context.scale(x, y)//
context.transform(0.5, 0, 0, 0.5, 1, 1);
//(x0,y0,x1,y1)
var gradient = context.createLinearGradient(50, 0, 350, 0);
//breakPoint
gradient.addColorStop(0, "#FF0000");
gradient.addColorStop(0.5, "#00FF00");
gradient.addColorStop(1, "#0000FF");
context.fillStyle = gradient;
context.fillRect(10, 10, 380, 180);//
context.createRadialGradient(x0, y0, r0, x1, y1, r1)
// , , 。
var gradient = context.createRadialGradient(200, 100, 10, 200, 100, 200);
gradient.addColorStop(0, "#FF0000");
gradient.addColorStop(0.5, "#00FF00");
gradient.addColorStop(1, "#0000FF");
context.fillStyle = gradient;
context.fillRect(10, 10, 380, 180);
context.createPattern(image, repetition)
// , image , repetition , “repeat”( )、“repeat-x”( )、“repeat-y”( ) “no-repeat”( )。
image.onload = function () {
var pattern = context.createPattern(image, "repeat");
context.fillStyle = pattern;
context.fillRect(10, 10, 380, 180);
}
image.onload = function () {
context.shadowColor = "red"; //
context.shadowOffsetX = 5; //
context.shadowOffsetY = 10;
context.shadowBlur = 10; //
context.fillStyle = "blue";
context.fillRect(10, 10, 180, 100);
context.drawImage(image, 200, 10);
}
//save() , , restore() save() 。
// beginPath() 。
context.save();
context.shadowColor = "red";
context.shadowOffsetX = 5;
context.shadowOffsetY = 10;
context.shadowBlur = 10;
context.fillStyle = "blue";
context.fillRect(10, 10, 180, 100);
context.restore();
context.fillRect(210, 10, 180, 100);
context.globalCompositeOperation = "destination-over"
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다른 사람의 웹사이트 편집: contenteditable 및 designMode그래도 우리가 그렇게 할 수 있다고 생각하는 것은 멋진 일입니다. 제가 강조하고 싶었던 일종의 관련 API가 실제로 몇 개 있기 때문에 오늘 그것을 가져왔습니다. contenteditable는 "true" 값이 할당...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.