1. 程式人生 > >html5 canvas拓展clearRect()實現圓形區域清理

html5 canvas拓展clearRect()實現圓形區域清理

canvas提供的clearRect(x, y, width, height)方法只能清理出特定位置的矩形區域,以下程式碼則能實現對圓形區域的清

理,主要是利用計算圓周率時的方法,將整個圓切成一個一個細小的正方形,然後再通過clearRect(x, y, width, height)

方法將一個一個細小的正方形區域清理。

<!DOCTYPE html>
<html>
	<head>
		<style>
			canvas{ border:1px solid black;}
			body{ margin:0;padding:0;}
		</style>
	</head>
	<body>
		<canvas id="canvas" width="400" height="400"></canvas>
		<script>
			var canvas=document.getElementById('canvas');
			var context=canvas.getContext('2d');
			
			context.beginPath();
			context.fillStyle="blue";
			context.arc(200,200,100,0,360*Math.PI/180);
			context.fill();
			
			function clearArc(x,y,radius){//圓心(x,y),半徑radius
				var calcWidth=radius-stepClear;
				var calcHeight=Math.sqrt(radius*radius-calcWidth*calcWidth);
				
				var posX=x-calcWidth;
				var posY=y-calcHeight;
				
				var widthX=2*calcWidth;
				var heightY=2*calcHeight;
				
				if(stepClear<=radius){
					context.clearRect(posX,posY,widthX,heightY);
					stepClear+=1;
					clearArc(x,y,radius);
				}
			}
			var stepClear=1;//別忘記這一步
			clearArc(210,230,50);
		</script>
	</body>
</html>
懶得複製黏貼的可以移步至此下載原始檔

相關推薦

html5 canvas拓展clearRect()實現圓形區域清理

canvas提供的clearRect(x, y, width, height)方法只能清理出特定位置的矩形區域,以下程式碼則能實現對圓形區域的清 理,主要是利用計算圓周率時的方法,將整個圓切成一個一個細小的正方形,然後再通過clearRect(x, y, width, he

Canvas---clearRect()清除圓形區域

math class win func ear radi epc 操作 title function clearArcFun(x,y,r,cxt){ //(x,y)為要清除的圓的圓心,r為半徑,cxt為context var stepClear=1;//別忘記

基於HTML5 Canvas和WebGL實現圖片的互動式幾何變換

createjs.CtrlFrame=function(bindObject){ createjs.Shape.call(this); this.sx=1; this.sy=1; this.dx=0; this.dy=0; this.state="still"; this.activeI

HTML5效果:Canvas 實現圓形進度條並顯示數字百分比

實現效果 1.首先建立html程式碼 <canvas id="canvas" width="500" he

HTML5+Canvas+jQuery調用手機拍照功能實現圖片上傳(二)

customer mkdir 狀態保存 ont false lan else if 項目 action 上一篇僅僅講到前臺操作,這篇專門涉及到Java後臺處理。前臺通過Ajax提交將Base64編碼過的圖片數據信息傳到Java後臺,然後Java這邊進行接收處理。通過

純JavaScript實現HTML5 Canvas六種特效濾鏡

小試牛刀,實現了六款簡單常見HTML5 Canvas特效濾鏡,並且封裝成一個純 JavaScript可呼叫的API檔案gloomyfishfilter.js。支援的特效濾鏡分別為: 1.      反色 2.   

PS學習記錄6--html5 canvas+js實現ps鋼筆摳圖

html5 canvas+js實現ps鋼筆摳圖 1. 專案要求需要用js實現photoshop中鋼筆摳圖功能,就用了近三四天的時間去解決它,最終還是基本上把他實現了。     做的過程中走了不少彎路,最終一同事找到了canvans以比較核心的屬性globalCo

canvas實現圓形進度條動畫的示例

本篇文章小編主要和大家分享一下canvas實現圓形進度條動畫的示例,文章中會有程式碼列出供大家參考學習,對HTML5開發感興趣的小夥伴就隨小編一起來了解一下吧。 本文介紹了canvas實現圓形進度條動畫,分享給大家,具體如下: 1、canvas的HTML部分很簡單就一個canvas標籤

Html5 Canvas動畫基礎碰撞檢測的實現

在Canvas中進行碰撞檢測,大家往往直接採用遊戲引擎(Cocos2d-JS、Egret)或物理引擎(Box2D)內建的碰撞檢測功能,好奇的你有思考過它們的內部執行機制嗎?下面將針對基本的碰撞檢測技術進行講解: 1、基於矩形的碰撞檢測 所謂碰撞檢測就是判斷物體間是否發生重疊,這裡我們假設討論的碰撞體都是矩

HTML5 canvas 240行程式碼實現粒子漩渦特效

<!doctype html> <html> <head> <meta charset="utf-8"> <title>H5,200行程式碼實現粒子漩渦特效</title> <styl

JavaScript和html5 canvas生成圓形印章

function createSeal(id,company,name){ var canvas = document.getElementById(id); var context = canvas.getContext('2d'); // 繪製印章邊框

HTML5+Canvas+jQuery呼叫手機拍照功能實現圖片上傳(二)

上一篇只講到前臺操作,這篇專門涉及到Java後臺處理,前臺通過Ajax提交將Base64編碼過的圖片資料資訊傳到Java後臺,然後Java這邊進行接收處理,通過對圖片資料資訊進行Base64解碼,之後使用流將圖片資料資訊上傳至伺服器進行儲存,並且將圖片的路徑地址存進資料庫。

基於HTML5 Canvas和jQuery的畫圖工具的實現

         //undo redo                               var history =new Array();                               var cStep = -1;                                

基於HTML5 Canvas 實現彈出框

    使用者滑鼠移入時,有彈出框出現,這樣的需求很常見。這在處理HTML元素實現時簡單,但是如果是對HTML5 Canvas 構成的圖形進行處理,這種方法不再適用,因為Canvas使用的是另外一套機制,無論在Canvas上繪製多少圖形,Canvas都是一個整體。而圖形本身

HTML5 Canvas 繪製橢圓與橢圓弧的實現

由於HTML Canvas 2D Context標準中並沒有直接繪製橢圓與橢圓弧的方法,所以瀏覽器普遍沒有這個方法,不過,Chrome支援ellipse方法,至於從哪個版本開始支援的,我就未查證了。IE11,Edge, Firefox, Safari目前最新版都還不支援。

HTML5 canvas 繪製圓形

canvas繪製圓形的思路: 1、建立路徑 XXX.beginpath(); 2、建立圓形的路徑; 3、關閉路徑;XXX.closepath(); 路徑不關閉也能繪製出圖形 4、設定繪製樣式。 建立圓形路徑時需要用到物件的arc方法,方法定義如:XXX.arc(x,y,r

Html5 Canvas 實現兩張圖片合成

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="keywords" con

HTML5 canvas帶漸變色的圓形進度條動畫

query-circle-progress是一款帶漸變色的圓形進度條動畫特效jQuery外掛。該圓形進度條使用的是HTML5 canvas來繪製圓形進度條及其動畫效果,進度條使用漸變色來填充,效果非常的酷。

HTML5 canvas實現圖片拉伸、壓縮與裁剪

前言: 我們在網頁中經常會用到圖片展示,通常情況下會給一個固定的寬高來顯示這個圖片,然而從伺服器端上傳的圖片大小是不確定的,如果直接按預設填充這個框有時候就會特別醜orz。作為一個完(wai)美(mao)主(xie)義(hui)者,讓圖片們儘可能優美

詳述用html5 canvas實現的類似於天貓的購物進度反饋/訂單跟蹤

UI設計圖如下: 2、函式引數設想 我們來假設,最後有一個函式,名字叫做trace,當我們【trace(XXXXX);】之後,颯的一下,最終的進度反饋圖就在頁面上渲染出來了。那麼這個函式,我應該要給它什麼資料作為引數讓它去生成最終的結果呢? 大夥們可以