gpt4 book ai didi

javascript - 计算图像 map 上多边形区域的宽度和高度

转载 作者:行者123 更新时间:2023-12-02 07:36:44 25 4
gpt4 key购买 nike

是否可以使用坐标计算图像 map 上每个多边形区域的宽度和高度?

我有一个图像并使用具有多个不同大小多边形的图像映射。我需要找到每个中心点。

最佳答案

要找到中心点,需要找到多边形的最小和最大X和Y坐标,然后取每个的中点,得到平均中心点。这是一个函数,它将为一组图像映射区域执行此操作。该函数接受一个数组而不是一个区域,以防您需要来自多个区域的中心点,这在地理图像 map 中很常见。

此处的工作示例将在所选美国州的中心点绘制一个圆圈: http://jsfiddle.net/jamietre/6ABfa/

/* Calculate the centermost point of an array of areas 
@param {element[]} areas an array of area elements
@returns {object} {x,y} coords of the center point
*/

function calculateCenterPoint(areas) {
var maxX = 0,
minX = Infinity,
maxY = 0,
minY = Infinity;

// note: using Array.prototype.forEach instead of calling forEach directly
// on "areas" so it will work with array-like objects, e.g. jQuery

Array.prototype.forEach.call(areas, function (e) {
var i = 0,
coords = e.getAttribute('coords').split(',');

while (i < coords.length) {
var x = parseInt(coords[i++],10),
y = parseInt(coords[i++],10);

if (x < minX) minX = x;
else if (x > maxX) maxX = x;

if (y < minY) minY = y;
else if (y > maxY) maxY = y;
}
});

return {
x: minX + (maxX - minX) / 2,
y: minY + (maxY - minY) / 2
};
}

关于javascript - 计算图像 map 上多边形区域的宽度和高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15477138/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com