2013-03-06 76 views
0

我想用JavaScript測試畫布形狀是否已創建。使用畫布確定形狀創建

例如:我創建了一圈:

context.beginPath(); 
context.fillStyle = this.color; 
context.arc(this.x, this.y, this.radius, 0, 2 * Math.PI, false); 
context.fill(); 
context.stroke(); 
context.closePath(); 

在這一瞬間圈假設要創建。 我想測試一下這樣的:

context.isPointInPath(this.x+1,this.y+1) == true; 

但我不覺得這是非常優雅。 任何人有更好的主意?

回答

0

X + Y <ř

的R - 半徑

這是一個圓的點的集合。

x and y所有值滿足公式不等式都在圓圈內。

因此檢查值爲(-r< x <r,-r< y <r)的點是否爲真。

,檢查點(r+1,r+1)(r+1,-r-1)(-r-1,r+1)(-r-1,-r-1)是假

+0

你的意思是使用isPointInPath檢查? – mrbadnews 2013-03-06 12:48:42

+0

是的,'isPointInPath'。也許'(r + 1,r + 1)'而不是'(r + 0.1,r + 0.1)'會更好,也許整數對像素更好 – kidwon 2013-03-06 13:24:55