基本上,用戶上傳圖片然後可以在其上繪製並保存結果。另一位用戶可以查看照片,如果他們點擊與塗漆相同的區域,則會發生一些情況。 因此,用戶1可以通過在照片上繪畫來使用戶2能夠點擊區域。是用戶在畫布上繪製區域中的鼠標
現在上傳位沒問題,並且在tutorial和example的幫助下進行了繪畫,我已經被遺忘了。但是確定可點擊的區域有點困難。對於像矩形這樣簡單的事情,我做了一個example。
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
var button = new Object();
button.x = 50;
button.y = 50;
button.width = 50;
button.height = 50;
button.rgb = "rgb(0, 0, 255)";
function drawbutton(buttonobject)
{
context.fillStyle = buttonobject.rgb;
context.fillRect (buttonobject.x, buttonobject.y, buttonobject.width, buttonobject.height);
context.strokeRect(buttonobject.x, buttonobject.y, buttonobject.width, buttonobject.height);
}
drawbutton(button);
function checkIfInsideButtonCoordinates(buttonObj, mouseX, mouseY)
{
if(((mouseX > buttonObj.x) && (mouseX < (buttonObj.x + buttonObj.width))) && ((mouseY > buttonObj.y) && (mouseY < (buttonObj.y + buttonObj.height))))
return true;
else
return false;
}
$("#myCanvas").click(function(eventObject) {
mouseX = eventObject.pageX - this.offsetLeft;
mouseY = eventObject.pageY - this.offsetTop;
if(checkIfInsideButtonCoordinates(button, mouseX, mouseY))
{
button.rgb = "rgb(0, 255, 0)";
drawbutton(button);
} else {
button.rgb = "rgb(255, 0, 0)";
drawbutton(button);
}
});
但是當涉及到其他形狀像圈子,或者只是有人窒息的頁面,你會怎麼去檢測呢?
想到我曾經使用過編輯過的圖層,使它隱藏起來,並且檢測到像藍色的像素顏色,但是這限制了照片的顏色使用,我不完全確定如何實現它。任何其他想法?
編輯:
我想通了界一些修補後,利用勾股定理,看看鼠標座標比半徑小,但這個假設的0,0圓心,所以後來抵消界實際中心鼠標。 example
function checkIfInsideButtonCoordinates(buttonObj, mouseX, mouseY) {
actualX = mouseX - buttonObj.x
actualY = mouseY - buttonObj.y
mousesqX = actualX * actualX
mousesqY = actualY * actualY
sqR = buttonObj.r * buttonObj.r
sqC = mousesqX + mousesqY
if (sqC < sqR) return true;
else return false;
}
只是讓我明白了,你想檢測什麼樣的形狀(S)的?因此,如果用戶#1繪製了一條波浪線,您是否想要檢測波浪線或其邊界框或圖像的象限,那麼波浪線會被繪製在其他位置? – markE
@markE的波浪線 –