我有一個畫布,我畫了一個透明的圖像,並且有一個像形狀的多邊形。現在我需要檢查該圖像是否已被點擊。Javascript檢查畫布上的透明圖像是否已被點擊
我有電線 { X:30, Y:20, 寬:100, H:100 }
我可以檢查一個框或圓圈點擊,但如果它是剛性的像一個多邊形是否有像素點擊測試或凸算法(但我不想指定邊緣)?
謝謝。
我有一個畫布,我畫了一個透明的圖像,並且有一個像形狀的多邊形。現在我需要檢查該圖像是否已被點擊。Javascript檢查畫布上的透明圖像是否已被點擊
我有電線 { X:30, Y:20, 寬:100, H:100 }
我可以檢查一個框或圓圈點擊,但如果它是剛性的像一個多邊形是否有像素點擊測試或凸算法(但我不想指定邊緣)?
謝謝。
一種解決方案是使用輔助畫布實現像素檢測,以用作地圖。
例如
var pixelMap = {
'000' : 'rectangle 1',
'001' : 'rectangle 2'
};
每次繪製新形狀到畫布上,增加1對RGB除非你有超過1670萬的形狀(256^3),這種方法應該足夠了。
解決問題 - upvote。爲每個形狀添加一個新的畫布有點貴。您可以通過使用一組alpha值而不是整個畫布來減少解決方案的內存佔用空間,因爲您只需測試透明度而不是RGB。 :-) – markE
雖然你的問題說你不想指定的邊緣,這是很容易打,測試使用'context.isPointInPath(mouseX,mouseY的任何形狀(甚至是透明的形狀) )'。 – markE