使用哪种算法来确定坐标是否在特定区域?

时间:2013-12-11 14:46:43

标签: javascript performance

我想知道某个点是否位于某个图像的“黑色”区域,如下图所示。 visualisation

目前我创建了一个像这样的大型数组(在JavaScript之外生成):

area = [ [0,200], [0,201], [0,202], ..., [1,199], [1,200], ...]

表示哪些坐标为黑色。因为对于较大的区域来说这会变得非常重要(我说的是大约2000x2000像素的图像大小),你会选择哪种算法快速而且不需要太多内存来查找特定坐标是否在黑色内部区域?

1 个答案:

答案 0 :(得分:2)

您可以将图像绘制到与图像具有相同宽度和高度的画布,然后在特定点(x | y)处从画布中检索pixelColor。

这是一个关于如何检索pixcel颜色的线程: Get pixel color from an image

这是我从鼠标位置检索像素颜色并返回颜色代码('#rrggbb')的方法:

var pixelData = canvas.getContext('2d').getImageData(event.offsetX, event.offsetY, 1, 1).data;
var hex= '#' + valToHex(pixelData[0]) + valToHex(pixelData[1]) + valToHex(pixelData[2]);