區域剪輯 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>canvas</title> <style> .canvas{border:1px solid #abcdef;background-color: # ...
區域剪輯
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>canvas</title> <style> .canvas{border:1px solid #abcdef;background-color: #a9add2;} </style> </head> <body> <canvas class="canvas" id="canvas" width="600" height="400">您的瀏覽器不支持canvas</canvas> <script> var canvas=document.getElementById("canvas"); var ctx=canvas.getContext("2d");//上下文,繪圖環境 //在矩形右上角繪製一個圓 ctx.arc(300,100,200,0,2*Math.PI,true); //進行區域剪輯 //後面繪製的所有圖形都會在這個原型區域內繪製,超出部分被剪輯 ctx.clip(); ctx.fillStyle="pink"; //繪製矩形 ctx.fillRect(100,100,200,200); </script> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>canvas</title> <style> .canvas{border:1px solid #abcdef;background-color: #a9add2;} </style> </head> <body> <canvas class="canvas" id="canvas" width="600" height="400">您的瀏覽器不支持canvas</canvas> <script> var canvas=document.getElementById("canvas"); var ctx=canvas.getContext("2d");//上下文,繪圖環境 //在矩形右上角繪製一個圓 ctx.arc(300,100,200,0,2*Math.PI,true); //進行區域剪輯 //後面繪製的所有圖形都會在這個原型區域內繪製,超出部分被剪輯 ctx.clip(); ctx.fillStyle="pink"; //繪製矩形 ctx.fillRect(100,100,200,200); //再繪製一個圓 ctx.fillStyle="#abcdef"; ctx.beginPath(); ctx.arc(400,300,100,0,2*Math.PI,true); ctx.fill(); </script> </body> </html>
取消區域剪輯,使用save和restore
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>canvas</title> <style> .canvas{border:1px solid #abcdef;background-color: #a9add2;} </style> </head> <body> <canvas class="canvas" id="canvas" width="600" height="400">您的瀏覽器不支持canvas</canvas> <script> var canvas=document.getElementById("canvas"); var ctx=canvas.getContext("2d");//上下文,繪圖環境 ctx.save(); //在矩形右上角繪製一個圓 ctx.arc(300,100,200,0,2*Math.PI,true); //進行區域剪輯 //後面繪製的所有圖形都會在這個原型區域內繪製,超出部分被剪輯 ctx.clip(); ctx.fillStyle="pink"; //繪製矩形 ctx.fillRect(100,100,200,200); ctx.restore(); //再繪製一個圓 ctx.fillStyle="#abcdef"; ctx.beginPath(); ctx.arc(400,300,100,0,2*Math.PI,true); ctx.fill(); </script> </body> </html>
繪製四色圓
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>canvas</title> <style> .canvas{border:1px solid #abcdef;background-color: #a9add2;} </style> </head> <body> <canvas class="canvas" id="canvas" width="600" height="400">您的瀏覽器不支持canvas</canvas> <script> var canvas=document.getElementById("canvas"); var ctx=canvas.getContext("2d");//上下文,繪圖環境 //繪製一個圓 ctx.arc(300,200,100,0,2*Math.PI,true); //進行區域剪輯 //後面繪製的所有圖形都會在這個原型區域內繪製,超出部分被剪輯 ctx.clip(); ctx.fillStyle="pink"; //繪製矩形 ctx.fillRect(200,100,300,200); ctx.fillStyle="lightgreen"; //繪製矩形 ctx.fillRect(300,100,400,200); ctx.fillStyle="#abcdef"; //繪製矩形 ctx.fillRect(200,200,300,300); ctx.fillStyle="orange"; //繪製矩形 ctx.fillRect(300,200,400,300); </script> </body> </html>
陰影
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>canvas</title> <style> .canvas{border:1px solid #abcdef;background-color: #a9add2;} </style> </head> <body> <canvas class="canvas" id="canvas" width="600" height="400">您的瀏覽器不支持canvas</canvas> <script> var canvas=document.getElementById("canvas"); var ctx=canvas.getContext("2d");//上下文,繪圖環境 ctx.fillStyle="pink"; //陰影x軸偏移 ctx.shadowOffsetX=10; //陰影y軸偏移 ctx.shadowOffsetY=10; //陰影顏色 ctx.shadowColor="rgba(0,0,0,.2)"; //模糊程度 ctx.shadowBlur=1; //繪製矩形 ctx.fillRect(100,100,100,100); </script> </body> </html>
文字陰影
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>canvas</title> <style> .canvas{border:1px solid #abcdef;background-color: #a9add2;} </style> </head> <body> <canvas class="canvas" id="canvas" width="600" height="400">您的瀏覽器不支持canvas</canvas> <script> var canvas=document.getElementById("canvas"); var ctx=canvas.getContext("2d");//上下文,繪圖環境 ctx.fillStyle="pink"; //陰影x軸偏移 ctx.shadowOffsetX=10; //陰影y軸偏移 ctx.shadowOffsetY=10; //陰影顏色 ctx.shadowColor="rgba(0,0,0,.2)"; //模糊程度 ctx.shadowBlur=1; //繪製矩形 ctx.fillRect(100,100,100,100); //繪製文字 ctx.font="20px sans-serif"; ctx.fillText("cyy呀",300,300); </script> </body> </html>
補充一下,設置文字的大小,這個ctx.font中,必須要加字體
我剛開始只是單純設置了20px,發現是不生效的
必須加上字體如sans-serif才可以
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>canvas</title> <style> .canvas{border:1px solid #abcdef;background-color: #a9add2;} </style> </head> <body> <canvas class="canvas" id="canvas" width="600" height="400">您的瀏覽器不支持canvas</canvas> <script> var canvas=document.getElementById("canvas"); var ctx=canvas.getContext("2d");//上下文,繪圖環境 ctx.fillStyle="pink"; //陰影x軸偏移 ctx.shadowOffsetX=10; //陰影y軸偏移 ctx.shadowOffsetY=10; //陰影顏色 ctx.shadowColor="rgba(0,0,0,.2)"; //模糊程度 ctx.shadowBlur=1; //繪製矩形 ctx.fillRect(100,100,100,100); //繪製文字 ctx.font="20px sans-serif"; ctx.fillText("cyy呀",300,300); ctx.fillText("小仙女",100,300); </script> </body> </html>
繪製曲線
圓弧的繪製 arc
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>canvas</title> <style> .canvas{border:1px solid #abcdef;background-color: #a9add2;} </